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

redux中state更新了 页面没改变

redux中state更新了 页面没改变

慕森王 2019-05-23 11:08:18
使用了redux和react-reduxreducer的部分代码如下//给初始状态一个默认值:{money:0}exportfunctionreducer(state={money:0},action){switch(action.type){caseADD://使用Object.assign,在调试的过程发现state确实改变了,但是页面没有变化,而使用扩展运算符则可以。//returnObject.assign(state,{money:(state.money+1)});return{...state,...{money:state.money+1}};caseSUBTRACTION:return{...state,...{money:state.money-1}};default:returnstate;}}请问有大牛知道原因吗
查看完整描述

2 回答

?
慕虎7371278

TA贡献1802条经验 获得超4个赞

楼上说的对。你用Object.assign(state,...)是直接修改了state对象,然后返回的还是原来的state对象(被修改过的),而redux会通过引用来判断前后两次state有没有变化。return原来的state的话redux会认为你的state没有变化。而扩展符则是创建了一个新的对象,相当于
Object.assign({},state,...)
希望对你有帮助
                            
查看完整回答
反对 回复 2019-05-23
  • 2 回答
  • 0 关注
  • 882 浏览
慕课专栏
更多

添加回答

举报

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