gpt4 book ai didi

reactjs - React router 4 History.listen 永远不会触发

转载 作者:行者123 更新时间:2023-12-03 13:12:18 28 4
gpt4 key购买 nike

切换到路由器 v4 和历史记录 v4.5.1,现在历史记录监听器不工作

import createBrowserHistory from 'history/createBrowserHistory'
const history = createBrowserHistory()

history.listen((location, action) => {
console.log(action, location.pathname, location.state) // <=== Never happens
})

render(
<Provider store={store}>
<Router history={history}>
...
</Router>
</Provider>,
document.getElementById('root')
)

知道为什么它被忽略吗?

最佳答案

由于您使用的是 BrowserRouter(如问题评论中提到的导入别名 Router ),它不关心您传入的历史记录。相反,它 internally creates and assigns new browser history to the Router 。所以你监听的历史实例和Router中使用的历史实例是不一样的。这就是为什么你的监听器不起作用。

导入原来的路由器。

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

它将按您的预期工作。

关于reactjs - React router 4 History.listen 永远不会触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44095744/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com