【问题标题】:Anchor tag redirects to react spa锚标签重定向到反应温泉
【发布时间】:2019-12-05 00:47:03
【问题描述】:
我想在我的 react spa 中使用一个锚标签(使用 react-router)。但是,如果我给它,例如,href 值为google.com,它只会扩展我的水疗路线,比如myreactspa.com/sampleRoute/google.com。有什么方法可以让我的锚标签直接链接到google.com?或者我必须将https:// 附加到我的href 值吗?谢谢!
【问题讨论】:
标签:
javascript
html
reactjs
react-router
anchor
【解决方案1】:
react-router(和类似的)是专门为 SPA 设计的。当您尝试导航到另一个网站(外部链接)时,路由器不应处理该问题。如果您使用Link,那么无论您通过什么路径,react-router 都会假定它是您的 SPA 的路径(这是预期行为,而不是错误)。
如果您想从您的网络应用导航到另一个网站,请使用像这样的普通锚标记
<a href="website_link">Click here</a>
如果您想在新标签页中打开页面,请使用
<a href="website_link" target="_blank" rel="noopener noreferrer">Click here</a>
【解决方案2】:
您应该将https:// 附加到您的URL 并将a 标记的target 属性设置为_blank。处理外部链接不是 React Router 的问题。
类似这样的:
<a href="https://www.google.com target="_blank">Link</a>
无需尝试使用 React Router 处理外部链接
【解决方案3】:
使用Route 组件渲染null 并更改窗口的位置。
<Route path='/externalresource' component={() => {
window.location.href = 'http://google.com'
return null
}}/>