首页 > 解决方案 > Immer 不支持在数组上设置非数字属性

问题描述

我正在尝试使用从服务器获取的一组数据来更新一个状态。这是我的减速机:

const schoolsDataReducer = (state = { data: [] }, action) =>
  produce(state, draft => {
    switch (action.type) {
      case SET_INITIAL__DATA:
        draft.data = [...action.payload.data]
        break
    }
  })

我收到此错误:

“Immer 不支持在数组上设置非数字属性:数据”

我应该如何存储对象数组?
该州的数组是否被认为是不好的做法?
我错过了什么吗?

标签: javascriptreactjsreduximmer.js

解决方案


当您传递的东西不是对象时,就会发生这种情况state。确保state是一个对象。


推荐阅读