我在更新不可變的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
}
};
}