как очистить магазин ngrx при выходе из системы

Я хочу очистить все свои состояния в магазине после выхода из системы. это мои редукторы /index.ts

export interface AppState {

}
export const reducers: ActionReducerMap<AppState> = {
router: routerReducer
};
export const metaReducers: MetaReducer<AppState>[] = !environment.production ? [storeFreeze] : [];

мой app.module.ts

    StoreModule.forRoot(reducers, {metaReducers:[]}) 

кроме того, у меня уже есть редуктор авторизации (authState) с двумя действиями: вход и выход

1 ответ

Я создаю в своем индексе функцию метаредуктора, которая при выходе пользователя из системы очищает хранилище.

export function clearState(reducer) {
  return function (state, action) {

    if (action.type === Auth.AuthActionsTypes.LogoutAction) {
      state = undefined;
    }

    return reducer(state, action);
  };
}

а затем добавил его в свой app.module

StoreModule.forRoot(reducers, {metaReducers:[clearState]})
Другие вопросы по тегам