如何停止突变状态?



这是我第一次遇到可变性。我有状态项目-一个对象的键去作为id,通过id我找到所有id项目需要改变日期,但他们改变所有项目一次,显然这是由于可变性,我不知道如何修复它…我将非常感谢你的帮助!

const allIds = getSubTasksId(Object.values(state.items), payload.id);
allIds.forEach((id) => (state.items[id].date.current = payload.date));
return {
...state,
items: { ...state.items },
};

您的state.items[id].date.current = payload.date语句负责突变。一个可能的解决方案。

const updatedItems = {};
allIds.forEach((id)=> updatedItems[id] = payload.date);
return {
...state,
items: updatedItems
}

最新更新