javascript - Immer 不支持在数组上设置非数字属性
问题描述
我正在尝试使用从服务器获取的一组数据来更新一个状态。这是我的减速机:
const schoolsDataReducer = (state = { data: [] }, action) =>
produce(state, draft => {
switch (action.type) {
case SET_INITIAL__DATA:
draft.data = [...action.payload.data]
break
}
})
我收到此错误:
“Immer 不支持在数组上设置非数字属性:数据”
我应该如何存储对象数组?
该州的数组是否被认为是不好的做法?
我错过了什么吗?
解决方案
当您传递的东西不是对象时,就会发生这种情况state
。确保state
是一个对象。
推荐阅读
- c# - 如何在 IActionFilter 中获取类型化的响应对象。ASP 核心 2.2
- python - 当我尝试将 JSON 转换为 Pandas Dataframe 时出现错误“AttributeError: 'list' object has no attribute 'values'”
- asp.net - Webhook 调用失败。错误:DEADLINE_EXCEEDED | 请求超时
- twitter-bootstrap-3 - 如何在这个垂直轮播的第一个和最后一个项目上隐藏引导 3 个轮播箭头?
- python - 从 MySQL 数据库获取后如何将 python 字符串转换为其原始类型
- laravel - 无法登录到 Gitlab CI 中的 MSSQL docker 以开始测试迁移
- javascript - 从对象有键返回对象的条件为真
- php - 使用 php 获取图像时的结果排序
- saml-2.0 - 为多个身份提供者使用 1 个 SAML2.0 服务提供者
- c++ - 使用 C++ 查找树的最深叶子总和的程序