【发布时间】:2020-03-11 23:11:46
【问题描述】:
我试图在页面刷新之间保留状态,但它似乎丢失了状态信息。我正在尝试保存两个布尔值并检索它。我已经为 chrome 安装了 NGXS Dev 工具来检查状态。我可以看到该操作正在正确发送状态信息,但是当我按 F5 时会丢失该信息。我错过了什么?
动作
import { AgreementsStateModel } from '../models/agreements-state.model';
export class SetAgreementStatus {
static readonly type = '[AGREEMENT] SetAgreementStatus';
constructor(public payload: AgreementsStateModel) {}
}
状态
import { Action, Selector, State, StateContext } from '@ngxs/store';
import { AgreementsStateModel } from '../models/agreements-state.model';
import { SetAgreementStatus } from './agreement.actions';
@State<AgreementsStateModel>({
name: 'agreementModalState',
defaults: {
isDeferred: false,
isInteracted: false
}
})
export class AgreementState {
constructor() { }
@Selector()
static agreement(state: AgreementsStateModel) {
return state;
}
@Action(SetAgreementStatus)
setAgreementStatus({ patchState }: StateContext<AgreementsStateModel>, { payload }: SetAgreementStatus) {
patchState(payload);
}
}
AppModule 导入
NgxsStoragePluginModule.forRoot()
调度状态
this.store.dispatch(new SetAgreementStatus({isInteracted: true, isDeferred: true}));
读取状态信息
@Select(AgreementState.agreement) agreementModalState$: Observable<AgreementsStateModel>;
this.agreementModalState$.subscribe(agreementModalStatus => {
this.agreementModalStatus = agreementModalStatus;
});
【问题讨论】: