Хотите одновременно открыть URL-адрес на следующей вкладке, а также перейти к маршруту: React+ React Router V4+ semantic-ui-react

У меня есть этот сценарий, когда я получаю определенный URL-адрес из бэкэнда, а затем при нажатии кнопки мне нужно открыть эту ссылку на новой вкладке, а также загрузить компонент на текущей вкладке с помощью реактивного маршрутизатора.


import { Button } from 'semantic-ui-react';
import { Link } from 'react-router-dom';
import * as React from 'react';

this.state = { url: ''} ; // This url I am able to get using fetch

//I get URL from the backend, and then I am trying to set it to href attribute. Routing just works find but link does not get opened in the new tab.

<Link to = "/path">
     <a href = {this.state.url} target = "_blank">
        <Button size = "small" fluid >
           Continue
        </Button>
     </a>
</Link>
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
0
0
728
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

попробуй это:

onBtnClick = (e) => {
    window.open(this.state.url, '_blank');
    this.props.history.push('/link/to/route/in/current/tab');
}

...

<Button size = "small" fluid onClick = {this.onBtnClick}>
    Continue
</Button>

Отказ от ответственности. Это для тех, кто наткнулся на этот ответ в Google и ему не понравилась предложенная реализация.

Лучшее решение (на мой взгляд) это

<Button as = {Link} to='/path' target='_blank'>

Другие вопросы по теме