NgRx Workshop: Part 7 - Meta-Reducers

NgRx Workshop: Part 7 - Meta-Reducers

  • 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];