将对象添加到另一个对象

时间:2021-01-26 15:46:43

标签: javascript reactjs javascript-objects context-api

我正在尝试在反应提供程序中以 id 作为键的对象中添加对象。以下是用例。

const [memberList, setMemberList] = useState({
  homeTeam: [],
  awayTeam: [],
  homeTeamClone: {},
});

我可以成功地将成员添加到数组中,但我更愿意将其添加到 homeTeamClone 对象中。

对象示例 = {"id":"3a21b0a-1223-46-5abe-67b653be5704","memberName":"Adam"}

我想要最终结果

homeTeamClone: {
  "3a21b0a-1223-46-5abe-67b653be5704": {"id":"3a21b0a-1223-46-5abe-67b653be5704","memberName":"Adam"},
  "3a21b0a-1223-46-5abe-67b653be5705": {"id":"3a21b0a-1223-46-5abe-67b653be5705","memberName":"Chris"},
  "3a21b0a-1223-46-5abe-67b653be5706": {"id":"3a21b0a-1223-46-5abe-67b653be5706","memberName":"Martin"},
}

我尝试了 Object.assign(homeTeamClone, member) 但没有得到预期的结果。

提前致谢。

1 个答案:

答案 0 :(得分:4)

如果问题是如何设置个人成员,您可以这样做:

const member = { id: '3a21b0a-1223-46-5abe-67b653be5704', memberName: 'Adam' };

setMemberList({
  ...memberList,
  homeTeamClone: {
    ...memberList.homeTeamClone,
    [member.id]: member,
  },
});

在这种情况下,传播所有旧值并添加新值。 (如果再次添加相同 ID 的用户,对象值将来自新用户)