是否有可能联合Reducer的ActionCreators?



我想加入一些做同样事情的"on()",从而节省代码行,这可能吗?

举一个我的代码示例:

const peopleReducer = createReducer(
INIT_STATE,
on(fromPeopleAction.GET_ALL_SUCCESS, (state, { peoples }) => adapter.addMany(peoples, { ...state, loading: false })),
on(fromPeopleAction.GET_ALL_FAIL, (state, { error }) => ({ ...state, error, loading: false })),
on(fromPeopleAction.CREATE_SUCCESS, (state, { people }) => adapter.addOne(people, { ...state, loading: false })),
on(fromPeopleAction.CREATE_FAIL, (state, { error }) => ({ ...state, error, loading: false })),
on(fromPeopleAction.DELETE_SUCCESS, (state, { id }) => adapter.removeOne(id, { ...state, loading: false })),
on(fromPeopleAction.DELETE_FAIL, (state, { error }) => ({ ...state, error, loading: false }))
);

注意,我们有一些"on()"做同样的事情,是否可以为同一个on()调用多个操作?

根据on的重载判断,如果你这样做,我认为你可以对多个操作使用相同的逻辑:

on(action1, action2, action3, ...action10, (state, action) => {})

请注意,在执行10个操作后,将丢失类型

同样需要注意的是,最后一个参数应该是减速器

最新更新