CombineReducers具有多个子减少器与在同一对象/映射上设置键值的reducer

时间:2018-05-01 14:08:50

标签: redux immutable.js

我可以使用combineReducers使用reducer函数来处理状态,如下所示处理状态的每个部分(foobar):

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 });

或者具有与动作相对应的case reducer函数,它们采用整个状态并在它们上只设置一个键值。 (可以使用如下的immutable.js或只是普通的对象)

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);
  }
}

一种风格是否具有某种优势?

0 个答案:

没有答案