如何使用React Router 5模拟window.location?

问题描述

我有Laravel提供的React SPA。 我希望SPA能够转到Laravel也提供服务的某些页面

更新:

作为一个例子... 在我基于coreui-react的应用程序中。.我想允许用户打开使用vuepress构建的用户手册。我希望能够在全新的页面中打开它,而不要将其捆绑到SPA中。 SPA显示https://test.local/用户手册显示https://test.local/docs

链接到=“ / docs”会使我回到SPA,也链接到=“ // test.local / docs”

我也尝试过将onClick = {()=> window.location = window.location.protocol +“ //” + window.location.hostname +“ / docs”}放在链接中,但是除了那没有其他变化它确实从本地开发服务器(端口3000)中退出。但是,如果它在构建中-那么它仍然会被ReactRouter捕获

有人建议StaticRouter可以这样做-但我看到的所有示例都涉及SPA将消耗的服务器端内容呈现,而不是使您跳到服务器交付的页面

我有点机智..我目前唯一的想法是将SPA从“ /”移动到“ / app”,而不在SPA内完全不处理“ /”,希望ReactRouter可能会让它通过

这似乎是ReactRouter中的一个长期问题。但是过去,您可以使用

解决方法

如果我理解正确, 您可以使用“历史记录”:

const history = useHistory();

您必须从useHistory导入react-router-dom

import { useHistory } from 'react-router-dom'

然后您可以使用:

history.push('/analytics')

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...