在我使用 Angular 和 RxJS 6 的网络应用程序中。该应用程序有一个登录,登录的响应是一个令牌,所以登录后,我将令牌保存在 sessionStorage 中,然后我解码令牌以保存当前登录用户。这是登录后的状态:
我正在尝试开发这种行为:如果用户转到页面“..login”(所以在 login.components.ts 中)并且如果他已经登录,则应用程序将重定向到主页。这是我在login.component.ts中的 ngOnInit() 中的代码:
ngOnInit() {
this.store.select('auth')
.pipe(take(1),
map((authState: fromAuth.State) => {
console.log('test');
if (authState.authenticated) {
this.router.navigate(['/home']);
}
}));
}
这是 AppState 的接口:
export interface AppState {
user: fromProfile.State,
auth: fromAuth.State,
core: fromCore.State
}
测试它,我登录,我回家,然后我进入登录页面,我在 console.log() 中放了一个断点,但它没有到达断点,它甚至没有进入它,所以它没有'不重定向到主页。为什么?