Как подключить редукторы к логике - PullRequest
1 голос
/ 05 октября 2019
const authReducer = createReducer(
  initialState,
  on(startLogin, (state) => ({...state, isLogging: true})),
  on(loginSuccessful, (state) => ({...state /*do sth other */})),
  on(loginSuccessful, loginFailed, (state) => ({...state, isLogging: false}))
);

В приведенном выше примере я разделил логику между несколькими действиями (свойство isLogging). Но только один из этих редукторов будет запущен при отправке действия loginSuccesfull.

Возможно подключить разделяемую логику вместо записи:

const authReducer = createReducer(
  initialState,
  on(startLogin, (state) => ({...state, isLogging: true})),
  on(loginSuccessful, (state) => ({...state, isLogging: false /*do sth other */})),
  on(loginFailed, (state) => ({...state, isLogging: false}))
);

1 Ответ

2 голосов
/ 06 октября 2019

Это невозможно (пока), только последнее зарегистрированное действие того же типа действия получает обновление.

const authReducer = createReducer(
  initialState,
  on(startLogin, (state) => ({...state, isLogging: true})),
  on(loginSuccessful, (state) => ({...state /*do sth other */})),
  on(loginSuccessful, loginFailed, (state) => ({...state, isLogging: false})) // only this one will be triggered for loginSuccessful
);

Мы только что объединили PR , чтобы использовать васВ случае, если это возможно, это, вероятно, выйдет из следующего выпуска.

...