我有一个react -redux应用程序。它工作正常。但是当使用调用props.dispatch()更新某个特定组件中的props时,使用此props的其他组件不会重新呈现。我认为redux无法识别该特定道具的变化。 对象是
[
{lunch: 0, dinner: 12, breakfast: 0},
{lunch: 1, dinner: 2, breakfast: 0},
{lunch: 0, dinner: 12, breakfast: 10}
]
并将此更改为此类
[
{lunch: 0, dinner: 1, breakfast: 0},
{lunch: 1, dinner: 2, breakfast: 0},
{lunch: 0, dinner: 1, breakfast: 10}
]
所以对象只有轻微的变化。但是这应该导致在使用这个道具的组件中重新渲染。 但这种情况并非如此。我已经检查了减速器,对象正在改变那里。 重新渲染也被称为其他道具的更改。仅在此对象的情况下。它不是重新渲染。 有什么建议? 编辑:- 在component-
this.props.dispatch({type: actions.SAVE_SELECTED_MEAL, selectedMeal: selected});
减速机中的-
case actions.SAVE_SELECTED_MEAL:
return {
...state,
selectedMeal: action.selectedMeal // [{lunch: id, dinner: 12, breakfast: 0}]
}
答案 0 :(得分:2)
我在此redux问题https://github.com/reactjs/redux/issues/585中找到了答案
如果有人遇到类似的问题。
实际上,我正在改变组件中的对象我将代码从const selected = this.state.selectedMeal;
更改为const selected = {...this.state.selectedMeal};
现在它的工作正常。