提供程序组件不会重新呈现

时间:2015-12-16 22:28:09

标签: javascript reactjs redux

我实际上并不确定这是否是预期的行为而我只是​​遗漏了一些东西:)

容器文件:

https://gist.github.com/anonymous/2b93241de5573bd0a6bd

此游戏组件使用如下:

https://gist.github.com/anonymous/80f0c2747c25a541e68d 调度pickColor操作后,更新存储(我通过从其他地方订阅它来检查)。因此,在调度此操作后 - 游戏组件不会重新渲染。

正如我所说,我不确定我是否没有正确设置redux,或者它是否只是以这种方式设计所以我必须通过订阅商店来手动重新渲染组件?

1 个答案:

答案 0 :(得分:1)

react-redux绑定只会在状态对象是新对象实例时更新组件。

因此,您的减速器必须返回全新的物体。这就是不变性。

<强> BAD:

switch (action.type) {
    case SET_VALUE:
        state.value = action.value;
        return state;
}

不可

switch (action.type) {
    case SET_VALUE:
        return Object.assign({}, state, {
            value: action.value
        });
}