1

我正在考虑加入一些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()

4

1 回答 1

1

on's 的重载来看,我认为如果你这样做,你可以对多个动作使用相同的逻辑:

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

请注意,执行 10 次操作后,您将丢失类型

同样重要的是要注意最后一个参数应该是reducer

于 2020-04-24T07:12:18.123 回答