为什么react redux不会为对象状态更改重新呈现视图?

时间:2016-06-11 07:33:32

标签: reactjs redux

对redux和react做出反应并且我不确定为什么在更新状态中的对象时不会更新视图。

参见jsbin:https://jsbin.com/wucutuhovu/1/edit?js,output

但它适用于数字:https://jsbin.com/kaloqanise/1/edit?js,output

2 个答案:

答案 0 :(得分:3)

Redux正在与州进行浅层比较。当您更改state.value时,state仍然指向同一个对象。

尝试将state.value += 1更改为:

return Object.assign({}, state, {
    value: state.value + 1
});

查看此JSBin:https://jsbin.com/cikinocudo/1/edit?js,output

答案 1 :(得分:1)

避免直接改变状态。我用对象编辑了你的第一个代码。第二个是正确的,但我们可以说我们的应用程序中有不同的状态,因此我们必须将状态初始化为对象。查看代码here。由于您使用的是ES015,因此您应该可以获取其中一些更改。

代码已更改:我删除了您的JSON.stringify,创建了变量“INIT_STATE”