javascript - 使用扩展运算符更新 redux 中的动态对象
问题描述
我正在尝试使用扩展运算符更新 redux 中的对象,但我无法做到。初始状态是一个空对象,因为类别是从 api 调用动态接收的。
页面和数据都是我想使用扩展运算符更新的对象(或任何最有效的对象)
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:无法读取未定义的属性'页面'”
我做错了什么,如何正确更新它们?
解决方案
因为state.category
在您第一次获取此类别时未定义。你可以这样修复它:
return {
...state,
[category]: state.category
? {
...state[category],
pages: { ...state[category].pages, pages },
data: { ...state[category].data, doctors },
total: total,
}
: {
pages,
data: doctors,
total,
},
};
推荐阅读
- javascript - 从 git 命令运行项目中的脚本
- cakephp - CakePHP 如何完成一个 NOT IN
- angularjs - 在 DOM 中实际添加“必需”的位置在哪里?
- java - Java 转换器 setOutputProperty()
- azure-devops - VSTS Dashboard Widget getWorkItem 可选参数展开
- c# - Xamarin 表单 (MVVM) 中的绑定问题
- c++ - 在 C++ 98 中优化向量的过滤
- javascript - jQuery 3 替代 e.pageX 和 e.pageY
- javascript - Javascript / Jquery 脚本因超时而终止
- c++ - TBB 编译器错误 - “my_task”:必须初始化引用