如何组织嵌套的 Redux reducer?

How to organize a nested Redux reducer?

我的部分应用程序的减速器将进行深度嵌套

 export const MainReducers = function(state = mapDataToInitialState(), 
 action = {}) {
   switch (action.type) {
               case Constants.SET_FOO:
        return update(state, {

          sheet: {
            stream: {
              appeal_0: {
                issues: {
                  problem1: {
                    foo: {
                      $set: action.payload.foo
                    }
                  }
                }
              }
            }
          }
        });

        case Constants.SET_BAR:
        return update(state, {
          // TODO make reusable for all issues fields
         sheet: {
            stream: {
              person: {
                issues: {
                  problem1: {
                    bar: {
                      $set: action.payload.bar
                    }
                  }
                }
              }
            }
          }
        });
   default: return state;
  }
 };

我还有很多要补充的,我怎样才能更好地抽象对象的嵌套

我在想 return newState 之类的事情。我真的不明白 combine reducer 是否适用于这种类型的东西。 redux 文档对我来说很难理解,因此我需要一个更好的例子来说明如何组织 reducer.. 谢谢

combineReducers 绝对是正确的选择。您可能还成功规范化和扁平化了您的状态,使其更易于使用。

所以你可能想做

const appReducer = combineReducers({
    streams: streamReducer,
    people: peopleReducer,
    issues: issueReducer
});

然后您的组件可以在 mapStateToProps 中获取他们想要的各个位,而不是获取一个巨大的大对象:

function mapStateToProps( state, ownProps ) {
    return {
        person: state.people[ ownProps.personId ]
        issues: state.issues[ ownProps.personId ]
    };
}