代码在这里:https://codesandbox.io/s/gith...
简单描述:这是跟着redux文档学习的一个例子,开始使用redux
+ react-redux
实现,且功能正常。之后使用了redux
+ react-router-dom
,并把使用connect
的两个容器型组件换成了普通函数组件(见代码里的containers
文件夹下的FilterLink.js
-> RouteLink.js
和VisibleTodoList.js
-> RouteTodoList.js
),其他代码基本没改动,然后就出现了dispatch
后store
更新但是不触发渲染的问题(新增todo,或者点击todo以完成都需要切换下面的按钮来触发更新)。
Google大都是涉及connect
然后用withRouter
来解决这样的,但我这里没有用connect
,希望有大佬能指出错误的地方,谢谢了!!!
这个是原链接: https://codesandbox.io/s/gith...
使用 redux , mobx 可以管理状态;
路由是用来做页面跳转的。
现在,你想使用路由来做组件的状态管理,肯定要让组件在路由更新时,监听路由变化,并修改UI的状态,使用 componentDidUpdate 去监听(或者使用 hooks,管理组件内部的状态和生命周期)
1、使用 redux , mobx 这样的工具来处理组件之间的状态管理,单个组件的状态用state管理
2、根据路由变化,来更新组件内部的状态