如果我们想在 redux 中以编程方式更改路由,我们曾经使用react-router-redux
npm 包。然而,它是由其作者存档的。现在推荐的解决方案是connected-react-router
:
https://www.npmjs.com/package/connected-react-router
但是正如文档在这个包中所说的那样,应该使用它来代替react-router
它来使其工作。
通常我使用的是react-router-dom
:
import { BrowserRouter } from 'react-router-dom';
<BrowserRouter>
<Route path='/' />
<Route path='/hey' />
</BrowserRouter>
但正如文档所说,我必须react-router v4/v5
用ConnectedRouter
from package 替换:
import { ConnectedRouter } from 'connected-react-router';
<ConnectedRouter history={history}>
<Route path={'/'} />
<Route path={'/foo'} />
</ConnectedRouter>
但是这种情况会导致Link
from出现问题react-router-dom
。Link
必须放在里面BrowserRouter
,但我不能使用它,因为没有BrowserRouter
,因为文档在说 - “记住删除 BrowserRouter 或 NativeRouter 的任何使用,因为留下它会导致同步状态的问题。”
问题是它ConnectedRouter
是react-router
, not的连接版本react-router-dom
,所以里面没有类似Link
orNavLink
的东西。
一定有办法,如果不是我相信这个包在github上不会有3k星......