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