В веб-приложении я использую Angular и RxJS 6. Приложение имеет логин, ответом на него является токен, поэтому после логина я сохраняю токен в sessionStorage, а затем декодирую токен в сохранить текущего вошедшего в систему пользователя. Это состояние после входа в систему:
Я пытаюсь развить это поведение: если пользователь перейдет на страницу "..login" (например, в login.components.ts) и если он уже вошел в систему, приложение будет перенаправлено на домашнюю страницу.
Это мой код внутри ngOnInit () в login.component.ts :
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 (), но она не достигает точки останова, она даже не вводит ее, и поэтому он не перенаправляет на домашнюю страницу. Почему?
* ОБНОВЛЕНО *: это экран отладки