Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在redux中使用react路由器_Javascript_Reactjs_Redux_React Router_Connected React Router - Fatal编程技术网

Javascript 在redux中使用react路由器

Javascript 在redux中使用react路由器,javascript,reactjs,redux,react-router,connected-react-router,Javascript,Reactjs,Redux,React Router,Connected React Router,如果我们想在redux内部以编程方式更改路由,我们通常使用react router reduxnpm包。然而,它是由作者存档的。现在推荐的解决方案是connected react router: 但正如本文件包中的文档所述,应该使用它而不是react router,以使其正常工作 通常我使用的是react路由器dom: import { BrowserRouter } from 'react-router-dom'; <BrowserRouter> <Route pa

如果我们想在redux内部以编程方式更改路由,我们通常使用
react router redux
npm包。然而,它是由作者存档的。现在推荐的解决方案是
connected react router

但正如本文件包中的文档所述,应该使用它而不是
react router
,以使其正常工作

通常我使用的是
react路由器dom

import { BrowserRouter } from 'react-router-dom';

<BrowserRouter>
   <Route path='/' />
   <Route path='/hey' />
</BrowserRouter>
但是这种情况会导致来自
react router dom
链接出现问题<代码>链接
必须放在
浏览器路由器
中,但我不能使用它,因为没有
浏览器路由器
,因为正如文档中所说的那样-“记住删除任何使用浏览器路由器或NativeOuter的内容,因为如果将其保留在中,将导致同步状态出现问题。”

问题是,
ConnectedRouter
react router
的连接版本,而不是
react router dom
,因此其中没有类似于
Link
NavLink
的内容

一定有办法,如果不是的话,我相信这个软件包在github上不会有3k星星


问题:如何使用
链接
内部
连接的外部
?谢谢 我建议您坚持只响应路由器dom。

不再需要将其连接到redux。在过去,这可能是因为很难读取当前路径名或搜索参数,因为只有主页组件接收这些路径名或搜索参数作为位置。但现在你可以从任何地方阅读感谢withRouter


您还可以使用历史来推送路线。这在过去也是一件令人头痛的事

不幸的是,我不能在例如redux saga中使用hoc,我将不得不把它传下去。我想你最好把它传给redux saga。或者您可以只读取window.location.pathname。。
import { ConnectedRouter } from 'connected-react-router';

<ConnectedRouter history={history}>
   <Route path={'/'} />
   <Route path={'/foo'} />
</ConnectedRouter>