请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

当点击对应的城市的时候为什么上面的CurrentCity组件数据不能同步变化呢

this.props.userInfoActions.update(userinfo)   //改变action 同时store也会变化 他里面的城市已经是变了  

那为什么我们点击城市的时候cityName变了,

console.log(this.props.userinfo.cityName)   返回的是点击对应的城市名字,但是CurrentCity组件的数据是不变的呢?

难道是因为点击事件是其他组件 不会影响CurrentCity这个组件吗?但是我们点的时候store会改变的啊~


求解 谢谢老师!


正在回答

2回答

qq_昊辰_03539545 2017-07-02 17:36:48

因为示例里面的代码cityName用的是对象,而且reducer里面是直接修改了对象的值,但是对象的引用地址没有发生变化,react就认为数据没有发生变化,这样就不会启用render去重新渲染,可以把cityName变成string型,也可以返回新的对象,都可以解决你的问题。

0 回复 有任何疑惑可以回复我~
双越 2017-06-29 20:15:59

使用 chrome 中 redux-dev-tool 看一下你改变城市时,是否真正存储到了 redux

0 回复 有任何疑惑可以回复我~
  • 改变了 但是上面的城市那个大字并没有变,只有返回重新进来才会变
    回复 有任何疑惑可以回复我~ 2017-06-29 23:00:36
  • 双越 回复 提问者 低级前端开花工程师 #2
    那个大字是传递的属性给 header 组件,你打印一下属性的值,看改了没有。另外根据这个线索来追踪一下。
    回复 有任何疑惑可以回复我~ 2017-06-29 23:17:21
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信