Javascript 如何解决redux减速器第二层状况的问题?
我正在制作一个应用程序,为学习方法提供任务。其中一个还原器应更改任务标记的状态:根据任务的解决方案,通过true或false。但此代码不会更改reducer的状态 我的代码:Javascript 如何解决redux减速器第二层状况的问题?,javascript,redux,Javascript,Redux,我正在制作一个应用程序,为学习方法提供任务。其中一个还原器应更改任务标记的状态:根据任务的解决方案,通过true或false。但此代码不会更改reducer的状态 我的代码: const initialStateMethods = { array: methodsObject }; const methods = (state = initialStateMethods, action) => { switch (action.type) { case "CHANGE_
const initialStateMethods = {
array: methodsObject
};
const methods = (state = initialStateMethods, action) => {
switch (action.type) {
case "CHANGE_MARK":
return {
...state,
array: state.array.map(method => {
if (method.id === action.methodIndex) {
method.tasks.map(task => {
if (task.id === action.taskIndex) {
return { ...task, mark: action.mark };
} else {
return task;
}
});
}
return method;
})
};
default:
return state;
}
};
但是这种方法的价值很容易改变,而且很有效。
例如:
const methods = (state = initialStateMethods, action) => {
switch (action.type) {
case "CHANGE_MARK":
return {
...state,
array: state.array.map(method => {
if (method.id === action.methodIndex) {
return { ...method, name: "newName" };
}
return method;
})
};
default:
return state;
}
};
所以我假设问题在多层结构中
原始对象的一小块:
export const methodsObject = [
{
name: "from()",
id: 0,
tasks: [
{
taskName: "Task №1",
id: 0,
mark: null
},
{
taskName: "Task №2",
id: 1,
mark: null
}
]
}
映射循环调用旁边缺少return语句:
...
case "CHANGE_MARK":
return {
...state,
array: state.array.map(method => {
if (method.id === action.methodIndex) {
return method.tasks.map(task => {
if (task.id === action.taskIndex) {
return { ...task, mark: action.mark };
} else {
return task;
}
});
}
return method;
})
};
映射循环调用旁边缺少return语句:
...
case "CHANGE_MARK":
return {
...state,
array: state.array.map(method => {
if (method.id === action.methodIndex) {
return method.tasks.map(task => {
if (task.id === action.taskIndex) {
return { ...task, mark: action.mark };
} else {
return task;
}
});
}
return method;
})
};