反应路由器链接到新标签

Posted

技术标签:

【中文标题】反应路由器链接到新标签【英文标题】:React Router Link to New Tab 【发布时间】:2020-05-07 19:47:54 【问题描述】:

我正在尝试使用 React Router 在新选项卡中呈现新组件。它有一个正在传递的参数。

以下是对我有用的示例在同一个选项卡中使用一个参数。如果我将 target="_blank" 添加到以下链接,我会收到 404 错误。

index.js 中的路由:

<Route exact path="/a-graph/:anId" component=aGraph />

主菜单页面中的链接:

<Link to="/a-graph/anId" style= overflowX: "visible", color: "black" >
    <MenuItem fitted key="graph" text="A Graph"/>
</Link>

我需要更改哪些内容才能在新选项卡中使用参数打开此组件?谢谢!

编辑:我的 URL 显示为 /a-graph/anId 这是一个数字。如果我的路线和链接是正确的,我不知道如何获得 404。感谢您的关注!

【问题讨论】:

【参考方案1】:
<Link target="_blank" to="/a-graph/anId" style= overflowX: "visible", color: "black" >
    <MenuItem fitted key="graph" text="A Graph"/>
</Link>

在这里找到:https://github.com/ReactTraining/react-router/issues/2188#issuecomment-146366561

在 1.0 中这是受支持的。我们只是将您提供给&lt;Link&gt;through 的所有额外道具传递给&lt;a&gt; 元素。因此,&lt;Link ... target="_blank"&gt; 将按您的预期工作。

【讨论】:

target="_blank" 如果我​​没有参数,则对我有用,但当我有参数时,我会得到 404。 “参数”是什么意思? 在我的示例中,我指的是路径中的 anId 值。正如我所看到的,这是我传递给新选项卡的 ID 值。 @TKoL 你有渲染链接时的id吗? &lt;Link to=`/a-graph/$anId` 是的,我在呈现链接时确实有 ID。它由用户使用包含链接的页面登录然后呈现。非常感谢您的回复! @TKoL

以上是关于反应路由器链接到新标签的主要内容,如果未能解决你的问题,请参考以下文章

反应路由器不工作链接到标签

History.push 一个带有反应路由器的新标签的链接

反应链接与标签和箭头功能

angular路由与a链接跳转有什么不同?

反应路由器链接不工作

反应路由器链接打字稿错误