为了账号安全,请及时绑定邮箱和手机立即绑定

不触发渲染怎么破?

不触发渲染怎么破?

MMMHUHU 2019-06-19 09:34:54
代码在这里: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,希望有大佬能指出错误的地方,谢谢了!!!
查看完整描述

2 回答

?
慕斯王

TA贡献1864条经验 获得超2个赞

问题出现的原因:组件没有setState!!!(还是理解不够透彻)解决方法:给容器型组件一个父组件,负责两个事情,一是接收store并订阅这个store更新(用来setState),二是向其容器型子组件传递state和dispatch——connect的雏形就这样出来了。如果将这个父组件封装为高阶组件,并且给子组件只传递其需要的props(通过调用mapState和mapDispatch),这应该就是乞丐版的connect了吧
                            
查看完整回答
反对 回复 2019-06-19
  • 2 回答
  • 0 关注
  • 220 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信