Я могу составить состояние следующим образом с 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);
}
}
Есть ли определенные преимущества одного стиля над другим?