首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >错误TypeError:无法读取未定义ngxs注销的属性“管道”

错误TypeError:无法读取未定义ngxs注销的属性“管道”
EN

Stack Overflow用户
提问于 2021-06-22 15:43:57
回答 2查看 187关注 0票数 1

从auth.state调用注销方法。我得到的错误是:

error TypeError:无法读取未定义的属性“管道”

代码语言:javascript
运行
复制
@Action(Logout)
logout(ctx: StateContext<AuthStateModel>) {
  return this.loginService.logout().pipe(
    tap((result) => {
    const state = ctx.getState();
      ctx.setState({...state,
          loggedInUser:undefined,
          accessToken: undefined,
          username: undefined,
          email:undefined,
          roles:undefined,
        });
     })
  );
}

这是logOut方法

代码语言:javascript
运行
复制
public logout(): Observable<void> {
   return this.tokenStorage.signOut();
}

这是来自signOutlocalstorage方法

代码语言:javascript
运行
复制
public signOut():any {
   return window.sessionStorage.clear();
}

错误图像:

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-06-22 15:51:05

您确定window.sessionStorage.clear()有返回值吗?

clear()是一个void方法,这就是您得到该错误的原因。

通过使用console.log(window.sessionStorage.clear()),您可以在将来简单地检查一个类似的问题,如果它返回值或未定义的值,您就会得到它。

票数 0
EN

Stack Overflow用户

发布于 2021-06-22 17:38:47

代码语言:javascript
运行
复制
@Action(Logout)
logout(ctx: StateContext<AuthStateModel>) {
 this.loginService.logout()
    const state = ctx.getState();
      ctx.setState({...state,
          loggedInUser:undefined,
          accessToken: undefined,
          username: undefined,
          email:undefined,
          roles:undefined,
        });
        return state;
 };

我用this...Thx代替了代码.我应该问另一个问题,这个above..problem实际上是(属性管道在void类型上不存在),但是我在代码中丢失了. :)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68086737

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档