【问题标题】:Invalid attempt to spread non iterable instance (In reducer of React)传播不可迭代实例的无效尝试(在 React 的 reducer 中)
【发布时间】:2021-01-28 03:51:19
【问题描述】:

我的情况很特殊,我需要一些帮助。

userData : {
 isValidCheckup: true,
 accounts: {
  userAccount: [
    {
      accountType: 'checkings',
      includeInCheckup: false
    },
    {
      accountType: 'checkings',
      includeInCheckup: false
    }
  ]
}

这里是减速器。

case UPDATE_USER_DATA: {
  const newUserAccount = [...state.userData.userAccount] // ----ERRROR-----
  return {
   ...state,
   userData: {
     ...state.userData
   }
  }
} 

我在const newUserAccount = [...state.userData.userAccount] 行遇到错误 它在控制台上显示以下错误

传播不可迭代实例的尝试无效。为了可迭代,非数组对象必须有 Symbol.iterator 方法

有人可以建议解决这个问题的方法吗?我想遍历 userAccount 并更新 accountType 属性。这就是为什么我添加了const newUserAccount = [...state.userData.userAccount]

【问题讨论】:

  • 试试{...state.userData.userAccount}。那么,你在减速器中改变了什么?
  • 阅读this article 了解调试技巧。请务必安装允许您检查道具和状态的 React 开发人员工具。还要安装允许您检查 redux 状态和操作操作的 Redux 开发工具。检查state.userData.userAccount 的值,看看它为什么会导致错误。

标签: javascript reactjs object redux react-redux


【解决方案1】:

您的userAccount 嵌套在accounts 下,因此请尝试使用[...state.userData.accounts.userAccount]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-25
    • 2019-07-01
    • 2019-07-18
    • 1970-01-01
    • 2021-09-02
    • 1970-01-01
    • 2020-08-10
    相关资源
    最近更新 更多