【问题标题】:NGXS returning only needed valuesNGXS 只返回需要的值
【发布时间】:2020-05-30 11:11:51
【问题描述】:

您好,我有这个 NGXS 脚本

@Action(Login)
  login(ctx: StateContext<AuthStateModel>, action: Login) {
    return this.authService.login(action.payload).pipe(
      tap((result: { token: string }) => {
        ctx.patchState({
          token: result.token,
          username: action.payload.username
        });
      })
    );
  }

但是,在我的调度订阅中,我得到了整个商店的退货。我只想要需要的东西。有没有办法通过订阅获取令牌和用户名?

最好的问候。

【问题讨论】:

    标签: ngxs


    【解决方案1】:

    如果您想查看更新后的用户名/令牌值,那么最简单的方法是将 withLatestFrom 与组件中的调度结合使用。

    例如在组件中你会有一个选择器

    @Select(AuthState) authState$: Observable&lt;AuthStateModel&gt;;

    当你派发动作时..

    this.store.dispatch(new Login(..))
    .pipe(
       withLatestFrom(this.authState$)
      )
      .subscribe(([_, authData]) => {
        // do something with authData.token / username
      });
    

    dispatching actions 的文档中显示了此方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多