NgRx Workshop: Part 7 - Meta-Reducers

Published on
  • Intercept actions before they are reduced
  • Intercept state before it is emitted
  • Can change the control flow of the Store
Alt Text

Most common use cases

  • Reset state when a signout action occurs
  • for debugging creating logger
  • to rehydrate when the application starts up

-It is like a plugin system for the store, they behave similarly to the interceptors

Example

An example of this can be to use it in a logger

const logger = (reducer: ActionReducer<any, any>) => (state: any, action: Action) => {
  console.log('Previous State', state)
  console.log('Action', action)

  const nextState = reducer(state, action)

  console.log('Next State', nextState)
  return nextState
}

export const metaReducers: MetaReducer<State>[] = [logger]