javascript - Immer 不支持在数组上设置非数字属性

标签 javascript reactjs redux immer.js

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

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

我收到此错误:

"Immer does not support setting non-numeric properties on arrays: data"

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

最佳答案

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

关于javascript - Immer 不支持在数组上设置非数字属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53091374/

相关文章:

javascript - 如何将 while 循环中生成的值存储到变量以供以后在 JQuery 中使用

javascript - 将 decodeURI 与 cookie javascript 一起使用

javascript - 使用 fs.readdir 在 vps 上返回 ENOENT,但在 localhost 上不返回

javascript - material-table 使行在单击时可编辑

android - react 导航中的 react native android后退按钮

javascript - 通过 Javascript 访问 ViewBag 列表

javascript - 我想在 react 中创建一个倒计时 watch ,用户在其中输入输入,可能在几秒钟内输入,然后它下降到 0

amazon-web-services - 将 AWS S3 API 与 React Native 结合使用

javascript - Redux 深度克隆 - 状态始终相等

redux - 在 Next.js 中使用 Redux 是一种反模式吗?