【问题标题】:Reducer is acting weird减速器的行为很奇怪
【发布时间】:2019-06-19 10:41:20
【问题描述】:

直奔问题。 每次我为新用户创建一个新房间时,该应用程序都可以正常工作。但是,一旦我尝试向现有房间添加新用户,我就会失去该房间中所有以前的用户。

代码位于 - https://codesandbox.io/embed/xenodochial-tree-w75r8

假设我要将两个用户(max 和 payne)添加到一个名为 cool 的全新房间,我希望输出如下所示。

从房间:


chatData:
  cool:
  message: {}
  users: Array(2)
      0: "max"
      1: "payne"
      length: 2
      proto: Array(0)
      proto: Object
  cricket: {users: Array(3), messages: Array(2)}

【问题讨论】:

    标签: reactjs react-hooks react-context


    【解决方案1】:

    我认为您需要在附加新值之前复制您在 users 数组中的先前状态。这就是您失去所有以前用户的原因。

    case "EXISTING_ROOM_NEW_USER":
      return {
        ...initState,
        [action.payload.roomname]: {
          users: [...initState[action.payload.roomname].users, action.payload.username],
          message: {}
        }
      };
    

    【讨论】:

      猜你喜欢
      • 2018-03-09
      • 2020-03-06
      • 2021-01-29
      • 1970-01-01
      • 2014-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-28
      相关资源
      最近更新 更多