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

8yoxcaq7  于 2023-05-17  发布在  React
关注(0)|答案(1)|浏览(238)

我有一个由Laravel提供的ReactSPA。我希望SPA能够去一些网页,也是由Laravel服务。
更新:
举个例子在我的coreui-react应用程序中。我想允许用户打开使用vuepress构建的用户手册。我希望能够在一个全新的页面中打开它,而不是将其捆绑到SPA中。SPA显示在https://test.local/,用户手册位于https://test.local/docs
Link to="/docs”将我弹回到SPA,Link to=”//test.local/docs“也是如此
我也试过把onClick={()=> window.location = window.location.protocol +“//”+ window.location.hostname +“/docs”}放在Link里面,但没有变化,除了它确实退出了本地开发服务器(端口3000)。但如果它在构建中-那么它仍然会被ReactRouter捕获
有一个建议,静态路由器将这样做-但所有的例子,我看到的是指服务器端渲染的内容,SPA将消费,而不是弹你到一个服务器交付的页面…
I'm kinda in my wits end..我目前唯一的想法是将SPA从“/”移动到“/app”,并且在SPA中根本不处理“/”,希望ReactRouter可以让它通过
这似乎是ReactRouter中的一个长期问题。但是在过去你可以用<a href或window.location.蛮力闯出去-但是现在似乎不再是这样了。

vof42yt1

vof42yt11#

如果我理解正确的话,你可以用“历史”:

const history = useHistory();

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

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

然后你可以用途:

history.push('/analytics')

相关问题