首页 > 解决方案 > 如何防止一种状态的 ONE 字段被 NgxsStoragePluginModule 持久化

问题描述

我有一个小问题:我正在使用 NgxsStoragePluginModule 在刷新时保持我的状态。

authError但是在我的 AuthState 中,如果登录不成功,我会设置。

一种情况可能是密码错误,另一种情况可能是我经过多次试验。

然后,如果我刷新页面,我希望这个页面上没有任何身份验证错误,用户甚至没有尝试登录。

我检查了文档(https://www.ngxs.io/plugins/storage),但他们只提到如何从存储中排除一种状态,但他们没有说明如何排除一种状态的属性.

这是我更新此 authError 的方法:

  @Action(LoginWithPasswordAction)
  async loginWithPassword(ctx: StateContext<AuthStateModel>, action: LoginWithPasswordAction) {
    ctx.patchState({
      authError: null,
    });
    try {
      await this.angularFireAuth.signInWithEmailAndPassword(action.email, action.password);
      await this.router.navigate(['/']);
    } catch (exception) {

      console.log('Login Setting exception to'+exception.message)
      ctx.patchState({
        authError: exception.message,
      });
    }
  }

我试图用 ngxsOnInit 中的 null 错误来修补状态,但它似乎不起作用。

我可以将其置于另一种状态,但由于它与“身份验证”相关,我认为将它放在这里是很合乎逻辑的。

有人知道如何防止它被保存吗?或者至少在我重新加载时重置它?

标签: angularstate-managementngxsweb-storage

解决方案


推荐阅读