【发布时间】:2018-01-11 10:25:35
【问题描述】:
我有一个相当复杂/嵌套的 redux 存储,如下所示:
{
object1
{
array:
[
object[1]: {
id: 1,
replace: ""
}
object[2]: {
id: 2
replace: ""
}
object[3]: {
id: 3,
replace: ""
}
]
}
}
调度一个动作后,我需要根据 ID 将该动作插入到其中一个 object[] 中。我目前正在使用以下脚本来更新减速器中的 replace。但是,由于 object2: {} 的大括号,这会将数组更改为对象。
case UPDATE:
return {
...state,
object1: {
...state.object1,
array: {
...state.object1.array,
[action.id]: {
...state.object1.array[action.id],
replace: action.result
}
}
}
};
之后我的渲染将中断,因为 object2.map 在更改为对象后不再是函数。如何在不将其转换为对象的情况下解决此问题?
以下将因语法错误而失败:
case UPDATE:
return {
...state,
object1: {
...state.object1,
array: [
...state.object1.array,
[action.id]: {
...state.object1.array[action.id],
replace: action.result
}
]
}
};
【问题讨论】:
-
什么是数组[1]、数组[2]、数组[3]
-
或者你的意思是说object2内的3个对象
-
@ShubhamKhatri 是的,我的错误。改变了上面的问题
标签: javascript reactjs redux react-redux