Jwt localstorage值仅在页面重新加载后可见

Jwt localstorage值仅在页面重新加载后可见,jwt,angular6,angular2-jwt,Jwt,Angular6,Angular2 Jwt,当用户登录时,我想在导航栏上显示该用户的用户名。在用户成功登录后,我已将令牌和用户名设置为localStorage。我的问题是除非我刷新页面,否则用户名不会显示在导航栏上 我不知道如何解决这个问题 有人能帮我吗 多谢各位 登录组件 身份验证服务 导航栏组件 试着打电话 this.user = this.tokenService.getIser() 在订阅内。尝试拨打电话 this.user = this.tokenService.getIser() 在subscribe中。您的auth

当用户登录时,我想在导航栏上显示该用户的用户名。在用户成功登录后,我已将令牌和用户名设置为localStorage。我的问题是除非我刷新页面,否则用户名不会显示在导航栏上

我不知道如何解决这个问题

有人能帮我吗

多谢各位

登录组件 身份验证服务 导航栏组件 试着打电话

this.user = this.tokenService.getIser() 
在订阅内。

尝试拨打电话

this.user = this.tokenService.getIser() 

在subscribe中。

您的auth service函数是一个回调函数,当所有操作完成时,它将触发成功或失败事件,因此代码
this.user=this.tokenService.getUser()在填充localstorage之前执行。尝试将此代码移动到authService.authStatus的subscribe方法中

ngOnInit() {
    this.authService.authStatus
        .subscribe(
            value => {
                this.loggedIn = value
            }
        );
    //set the username on navbar
    this.user = this.tokenService.getUser();
}
像这样

ngOnInit() {
    this.authService.authStatus
        .subscribe(
            value => {
                this.loggedIn = value
                this.user = this.tokenService.getUser();

            }
        );
}

auth service函数是一个回调函数,当所有操作完成时,它将触发成功或失败事件,因此代码
this.user=this.tokenService.getUser()在填充localstorage之前执行。尝试将此代码移动到authService.authStatus的subscribe方法中

ngOnInit() {
    this.authService.authStatus
        .subscribe(
            value => {
                this.loggedIn = value
            }
        );
    //set the username on navbar
    this.user = this.tokenService.getUser();
}
像这样

ngOnInit() {
    this.authService.authStatus
        .subscribe(
            value => {
                this.loggedIn = value
                this.user = this.tokenService.getUser();

            }
        );
}
ngOnInit() {
    this.authService.authStatus
        .subscribe(
            value => {
                this.loggedIn = value
                this.user = this.tokenService.getUser();

            }
        );
}