【发布时间】:2020-07-20 14:53:53
【问题描述】:
我正在尝试使用扩展运算符更新 redux 中的对象,但我无法做到。
初始状态是一个空对象,因为 category 是从 api 调用动态接收的。
pages 和 data 都是我要更新的对象使用扩展运算符(或任何最有效的方法)
state = {
[category]: {
pages: {
key: value(array)
},
data: {
key: value(array)
}
}
}
在我的减速器上,我尝试像这样更新它
return {
...state,
[category]: {
...state[category],
pages: { ...state[category].pages, pages },
data: { ...state[category].data, doctors },
total: total,
},
};
但我得到“错误:TypeError:无法读取未定义的属性'pages'”
我做错了什么以及如何正确更新它们?
【问题讨论】:
-
您似乎正在尝试在获取 API 数据之前更新 reducer,或者您没有更新,或者您的响应中不存在页面
-
页面确实存在于响应中,因为如果我只设置 pages:pages,它将获取值,但它会覆盖它,我想用以前的结果更新它
-
那么您第一次搜索的状态(state[category])中不存在类别!
标签: javascript reactjs redux