我在更新不可变的redux和相当嵌套的数据时遇到了问题。这里是我的数据结构和我想改变的一个例子。如果任何人都可以向我展示使用ES6和传播运营商访问此更新的模式,我会很感激。Redux更新嵌套的不可变数据
我的整个状态是一个带有项目(键/值对 - 这里仅作为一个项目的示例)的对象,它们是具有其自己的键(且键也是ids)的对象,过程数组以及任务内部:
{ 1503658959473:
{ projectName: "Golden Gate",
projectLocation": "San Francisco",
start:"22/09/1937",
id:1503658959473,
procedures:[
{ title: "Procedure No. 1",
tasks:[
{name: "task1", isDone: false},
{name: "task2", isDone: false},
{name: "task3", isDone: false}
]
}
]
}
}
我愿意做的是将单个任务'isDone'属性更新为'true'。这是某种切换任务的方式。 如何更新此信息并返回此状态?
行动的创建者将此信息传递给减速机:
export function toggleTask(activeProject, task, taskIndex) {
return {
type: TOGGLE_TASK,
payload: {
activeProject,
task,
taskIndex
}
};
}