【问题标题】:updating array object in redux phrasing error?在 redux 措辞错误中更新数组对象?
【发布时间】:2021-07-13 15:04:45
【问题描述】:

我正在尝试通过访问对象的索引来更新 react.js 中的数组对象。 我已经编写了这段代码并且收到了这个错误。

解析错误:',' expected.eslint

            updateUserAvatar: (
          state,
          { payload: { id, avatar } }: PayloadAction<UpdateUserAvatar>
        ) => {
          const users = current(state.data.familyMembers)
          const user = users.find((user) => user.id === id) as DashboardFamilyMember
          const userIndex = users.findIndex((user) => user.id === id)
          return {
            ...state,
            data: {
              ...state.data,
              familyMembers: [
                ...state.data.familyMembers,
//where error occurs
               userIndex: {
                  ...user,
                  avatar: avatar,
                },
              ],
            },
          }
        },
      },

我知道我可以通过数组进行映射,但我很困惑为什么这不起作用。

【问题讨论】:

  • 您确定userIndex 应该在familyMembers 数组中吗?
  • 是的,我正在尝试访问这些对象imgur.com/512453p

标签: javascript arrays json reactjs redux


【解决方案1】:

您可以映射familyMembers 数组并在找到user.id 并更新该头像时进行更新。

const users = current(state.data.familyMembers)
const familyMembers = users.map(user => {
    if(user.id === id) {
       return { ...user, avatar };
    } else {
       return user;
    }
}
const userIndex = users.findIndex((user) => user.id === id)
return {
  ...state,
  data: {
     ...state.data,
     familyMembers: familyMembers,
   },
};

【讨论】:

    猜你喜欢
    • 2019-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-12
    • 2020-07-08
    • 1970-01-01
    • 2023-04-05
    • 2018-05-03
    相关资源
    最近更新 更多