Можно ли объединить ActionCreators Редуктора? - PullRequest
1 голос
/ 24 апреля 2020

Я думал о присоединении к некоторому "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()?

1 Ответ

2 голосов
/ 24 апреля 2020

Судя по перегрузкам on , я думаю, вы можете использовать один и тот же лог c для нескольких действий, если вы сделаете это:

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

Обратите внимание, что после 10 действий вы потеряете типы .

Также важно отметить, что последний аргумент должен быть редуктор .

...