По умолчанию состояние вашего приложения сбрасывается при обновлении страницы.
Что вам нужно сделать, это сохранить ваше состояние «auth» в постоянное хранилище, например, localstorage / sessionstorage.
И восстановить состояние из localalstorage / sessionstorage при запуске.
Я создал библиотеку, чтобы легко справиться с этим: https://github.com/larscom/ngrx-store-storagesync
- Выполнить:
npm install --save @ larscom / ngrx-store-storagesync
Настройка метаредуктора
Конфигурация будет выглядеть примерно так: 1021 *
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { StoreModule, ActionReducerMap, ActionReducer, MetaReducer } from '@ngrx/store';
import { storageSync } from '@larscom/ngrx-store-storagesync';
import * as fromAuth from './auth/reducer';
export const reducers: ActionReducerMap<ISomeState> = {
auth: fromAuth.reducer
};
export function storageSyncReducer(reducer: ActionReducer<any>): ActionReducer<any> {
return storageSync<ISomeState>({
features: [
// saves the auth state to sessionStorage
{ stateKey: 'auth' }
],
storage: window.sessionStorage
})(reducer);
}
const metaReducers: Array<MetaReducer<any, any>> = [storageSyncReducer];
@NgModule({
imports: [BrowserModule, StoreModule.forRoot(reducers, { metaReducers })]
})
export class AppModule {}
Вот и все, если вы перезагрузите страницу, состояние будет восстановлено изsessionStorage (в данном случае)