Redux нормализр "простого слияния", дескриптор удаления - PullRequest
0 голосов
/ 01 февраля 2019

В документации на основе избыточности используется подход «простого слияния» с использованием функции слияния lodash: https://github.com/reduxjs/redux/blob/e7097be3edcc2ba76cbb6d3aea77e63be2d7e80c/docs/recipes/structuring-reducers/UpdatingNormalizedData.md#standard-approaches

«Он также не обрабатывает попытки удаления элемента».

Чтобы удалитьitem, не было бы решением использовать вместо этого lodash "mergeWith" и передать настройщик, который сохраняет только массив, переданный с сущностями.Примерно так:

function entities (state = initialState, action) {
  function customizer(fromState, fromEntities) {
    if (isArray(fromState)) {
      return fromEntities;
    }
  }

  if(action.entities) {
    return mergeWith({}, state, action.entities, customizer);
  }

  switch (action.type) {
    default:
      return state;
  }
}

Пока что для моего личного сценария использования он работает хорошо (во всех моих массивах есть ссылки на другие объекты).Но есть, конечно, случаи, которые я здесь не рассматриваю.Вы видите проблемы с использованием _.mergeWith вместо _.merge?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...