Мое приложение выполняет вход в систему на основе метода, который при проверке пользователя активирует боковую панель через BehaviorSubject и перенаправляет пользователя на индексный экран приложения следующим образом. login.ts
export class LoginPage implements OnInit {
loginForm: FormGroup
public errorMesage:string = 'Dados inválidos'
public spinner:boolean = false;
constructor(
private navController: NavController,
private apiService: ApiService,
private tokenService: TokenServiceService,
private sideBar: SideBarService,
private alertController: AlertController,
private formBuilder: FormBuilder
) { }
logar() {
this.spinner = true;
let email = this.loginForm.get('email').value;
let password = this.loginForm.get('password').value;
this.apiService.login(email, password).subscribe(res => {
if(res){
this.spinner = false;
this.tokenService.storageDatas(res);
this.sideBar.show(true);
this.navController.navigateRoot('/index')
}else{
this.spinner = false;
this.presentAlert(this.errorMesage);
}
}, error => {
console.log(error);
})
}
Сервис боковой панели выглядит следующим образом:
export class SideBarService {
private barChange = new BehaviorSubject<boolean>(null);
constructor() { }
barChoice(){
return this.barChange.asObservable();
}
show(value:boolean){
this.barChange.next(value);
}
}
До этого момента приложение работает нормально, но когда я выхожу из системы и перенаправляю пользователя для повторного входа в систему, приложение просто зависает , дальнейшие действия невозможны. Он возвращается к экрану входа в систему, однако я не могу выполнять какие-либо дальнейшие действия в приложении. Ниже приведен код выхода из системы:
export class AppComponent implements OnInit {
public results$: Observable<Boolean>;
public showSideBar: boolean = false;
public user: string = null;
constructor(
private navController: NavController,
private router: Router,
private platform: Platform,
private splashScreen: SplashScreen,
private statusBar: StatusBar,
private sideBar: SideBarService,
private tokenService: TokenServiceService
) {
this.initializeApp();
}
ngOnInit() {
this.results$ = this.sideBar.barChoice();
this.results$.subscribe((resp: boolean) => {
console.log(resp);
if (resp) {
this.showSideBar = true;
} else {
this.showSideBar = false;
}
})
this.user = localStorage.getItem('user');
}
logout() {
this.sideBar.show(false);
this.tokenService.clearStorage();
this.navController.navigateRoot('/login');
}
На консоли после выхода из системы не отображаются ошибки. Кто-нибудь знает причину возникновения этой проблемы?