Редуктор ведет себя странно - PullRequest
0 голосов
/ 19 июня 2019

Идем прямо к проблеме. Каждый раз, когда я создаю новую комнату с новым пользователем, приложение работает просто отлично. Но, как только я пытаюсь добавить нового пользователя в существующую комнату, я теряю всех предыдущих пользователей в этой самой комнате.

Код доступен по адресу - https://codesandbox.io/embed/xenodochial-tree-w75r8

Предположим, я должен был добавить двух пользователей (max и payne) в совершенно новую комнату под названием cool, я ожидаю, что результат будет таким, как показано.

ИЗ НОМЕРА:

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

1 Ответ

0 голосов
/ 19 июня 2019

Я думаю, вам нужно скопировать предыдущее состояние, которое вы имели в массиве пользователей, прежде чем добавлять новое значение.Вот почему вы теряете всех своих предыдущих пользователей.

case "EXISTING_ROOM_NEW_USER":
  return {
    ...initState,
    [action.payload.roomname]: {
      users: [...initState[action.payload.roomname].users, action.payload.username],
      message: {}
    }
  };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...