当我使用 Redux 时,React-Router 停止工作

React-Router stops working when I use Redux

我正在试用 redux。出于某种原因,当我使用 redux 时,react-router 不再正常工作。当我单击 Link 时,url 发生变化,但新组件未加载。它仅在我刷新页面时加载。

Router without Redux

Router and Redux

我做错了什么?

redux 的 connect(...) 包装器函数生成了一个新组件。这个新组件实现了 shouldComponentUpdate 功能,当它的 props 不同时(pr shallowEqual)仅更新自身和子组件。

https://reacttraining.com/react-router/web/guides/redux-integration

标准的解决方法是用 withRouter 包裹 connect(...)。这会注入新的道具,强制 connect-ed 组件根据位置变化进行更新。

即。 withRouter(connect(...))

https://codesandbox.io/s/2xl5pp1l4n