CombineReducers с несколькими субредукторами и редукторами, которые устанавливают значения ключей для одного и того же объекта / карты - PullRequest
0 голосов
/ 01 мая 2018

Я могу составить состояние следующим образом с combineReducers с помощью функции редуктора, обрабатывающей каждую часть состояния (foo и bar):

function foo(state, action) {
  switch(action.type) {
    case types.A:
      return action.value;
    default:
      state;
  }
}

function bar(state, action) {
  switch(action.type) {
    case types.B:
      return action.value;
    default:
      return state;
  }
}

combineReducers({ foo, bar });

Или иметь функции преобразования регистра, которые соответствуют действиям, которые принимают все состояние и устанавливают для них только одно значение ключа. (Может быть, используется immutable.js, как показано ниже, или просто обычные ojects)

function a(state, value) {
  state.set('foo', action.value);
}

function b(state, value) {
  state.set('bar', action.value);
}

function reducer(state = Map()) {
  switch (action.type) {
    case types.A:
      return a(state, action.value);
    case types.B:
      return b(state, action.value);
  }
}

Есть ли определенные преимущества одного стиля над другим?

...