Redux с normlizr: переносить данные в объект normlizr - PullRequest
0 голосов
/ 16 июня 2020

У меня есть объект normlizr, который выглядит так:

entities:
  events:
   123: {} 
   125: {}

У меня есть новый объект, который я нормализовал:

entities:
  events:
   111: {}

Я хотел бы добавить событие в начало список. как я могу сделать это с помощью redux && immer? результат в состоянии будет выглядеть так:

entities:
  events:
   111: {},
   123: {},
   125: {}

мой редуктор:

    case ADD_EVENT: {
        draft.entities.events = action.payload.entities.events;
        return draft;
      }

1 Ответ

1 голос
/ 16 июня 2020

вы можете использовать метод Object.assign или оператор es6 spread (...)

case ADD_EVENT: {
  //shallow merge 
  draft.entities.events = Object.assign(
                            {},
                            action.payload.entities.events,
                            draft.entities.events,
                          );

  return draft;
}

UPDATE

, если action.payload.event - это просто событие что-то вроде этого

{
  111: {}
}

тогда мы можем просто заменить, как показано ниже

case UPDATE_EVENT: {
  draft.entities.events = {...draft.entities.events, ...action.payload.event};
  return draft;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...