【发布时间】:2019-12-10 11:03:49
【问题描述】:
我正在尝试通过传递已删除的项目 ID 来更新我的 redux reducer 中的状态。 Id 位于任务和相关列中。删除此项目的干净方法是什么?
到目前为止,我的减速器看起来像这样:
case DELETE_TASK:
const update = delete state.tasks[`${action.payload.id}`]
const findIdCol = ?
return {
}
const initState = {
tasks: {
"task1": {
id: "task1",
content: "hello1"
},
"task2": {
id: "task2",
content: "hello2"
},
"task3": {
id: "task2",
content: "hello3"
}
},
columns: {
"column1": {
id: "column1",
taskIds: []
},
"column2": {
id: "column2",
taskIds: []
},
"column3": {
id: "column3",
taskIds: ["task3", "task1"]
}
},
main: {
"main": {
id: "main",
taskIds: ["task2"]
}
},
columnOrder: ["column1", "column2", "column3"],
mainOrder: ["main"]
};
【问题讨论】:
-
通过删除项目,您的意思是从任何列中删除 id 吗?如果是这种情况,过滤每一列将是一个解决方案。
-
是的,我需要删除相关列中的 id。我相信 const update = delete state.tasks[
${action.payload.id}] 会从任务中删除对象,下一步是删除列中的 id。我需要检查所有现有的列,例如列和主要 -
@Freddy :直接在状态上执行
delete或任何其他修改其属性的方式似乎都不是 clean 。相反,我会 suggest 做复制修改替换的事情。
标签: javascript reactjs redux react-redux state