[英]React Router browserHistory.push open link in a new tab
[英]Open link in new tab in react router programmatically
我正在将 ReactJS 与 React Router(无 redux)一起用于一个项目,我想以编程方式打开一个链接,但在一个新选项卡上。 我知道使用onClickNode={e => this.props.history.push('/${e.data.node.id}')}
我可以 go 到所需的链接,但问题是它在同一个标签。 也没有办法在 function 中使用 JSX,因此不可能添加<Link>
组件。
(我正在使用 React Router v4)
这个https://stackoverflow.com/a/11384018/7697399答案帮助了我并且完美地工作。 这可以在没有 react-router 帮助的情况下完成。
function openInNewTab(url) {
var win = window.open(url, '_blank');
win.focus();
}
与上一个答案类似,但如果无法打开窗口,则不会出错。
function open(url) {
const win = window.open(url, '_blank');
if (win != null) {
win.focus();
}
}
可以使用react-router-dom
<Link/>
组件。 使用您可以将道具传递给新标签。
<Link to='/' target="_blank">
<div> Button </div>
</Link>
在新的 Javascript 语法中,您可以像这样编写函数:
const openLink = (url) => window.open(url, '_blank')?.focus();
如果成功,这将尝试在新选项卡中打开 URL 并专注于它。 如果选项卡没有打开,它不会抛出错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.