redux中state更新了 页面没改变

使用了redux和react-redux
reducer的部分代码如下
//给初始状态一个默认值:{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;
}
}
请问有大牛知道原因吗
SMILET
浏览 1275回答 2
2回答

叮当猫咪

楼上说的对。你用Object.assign(state,...)是直接修改了state对象,然后返回的还是原来的state对象(被修改过的),而redux会通过引用来判断前后两次state有没有变化。return原来的state的话redux会认为你的state没有变化。而扩展符则是创建了一个新的对象,相当于Object.assign({},state,...)希望对你有帮助
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript