提供者组件不重新呈现
Provider component doesn't re-render
我不确定这是否是预期的行为,我只是遗漏了一些东西:)
容器文件:
https://gist.github.com/anonymous/2b93241de5573bd0a6bd
本游戏组件使用如下:
https://gist.github.com/anonymous/80f0c2747c25a541e68d
派发 pickColor 操作后,商店会更新(我通过从其他地方订阅它来检查)。因此,在分派此操作后 - 游戏组件不会重新呈现。
正如我所说,我不确定我是否没有正确设置 redux,或者它只是以这种方式设计的,所以我必须通过订阅 store 手动重新渲染组件?
react-redux
绑定只会在状态对象是新对象实例时更新您的组件。
因此您的减速器必须 return 全新的对象。这就是不变性的意义所在。
不好:
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
});
}
我不确定这是否是预期的行为,我只是遗漏了一些东西:)
容器文件:
https://gist.github.com/anonymous/2b93241de5573bd0a6bd
本游戏组件使用如下:
https://gist.github.com/anonymous/80f0c2747c25a541e68d 派发 pickColor 操作后,商店会更新(我通过从其他地方订阅它来检查)。因此,在分派此操作后 - 游戏组件不会重新呈现。
正如我所说,我不确定我是否没有正确设置 redux,或者它只是以这种方式设计的,所以我必须通过订阅 store 手动重新渲染组件?
react-redux
绑定只会在状态对象是新对象实例时更新您的组件。
因此您的减速器必须 return 全新的对象。这就是不变性的意义所在。
不好:
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
});
}