【发布时间】:2018-09-18 03:23:13
【问题描述】:
我以为我已经安全地创建了一个新状态,并在我的 Redux reducer 中返回了以下代码。基本上,我需要更改 state.data 数组中的一条记录并返回新状态。我的期望是,由于 newState 是全新的,所以我很好。
安装redux-immutable-state-invariant后,我看到还是有问题(代码和错误如下)。
let newState = Object.assign({}, state);
let newData = [];
newState.data.map(function(rec){
if (rec.id === sessionIdToUpdate) {
rec.interestLevel = newInterestLevel;
newData.push(rec);
} else {
newData.push(rec);
}
});
newState.data = newData;
return newState;
还有错误...
A state mutation was detected inside a dispatch, in the path: `sessions.data.0.interestLevel`
如果我注释掉这一行
rec.interestLevel = newInterestLevel;
错误消失了,但这个 reducer 的用途也消失了。
【问题讨论】:
标签: reactjs redux react-redux