У меня есть этот сценарий, когда я получаю определенный 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>
попробуй это:
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'>