Я создаю приложение, используя шаблон с вкладками в Ionic.Имеет 4 кнопки.,
Когда пользователь вышел из системы, 4-ая кнопка должна перевести его на страницу входа / регистрации, как указано выше.
Когда они вошли в систему, должна появиться кнопка выхода из системы, как показано выше.
Ниже мой код в tabs.html
показывает мои вкладки:
<ion-tabs>
<ion-tab [root]="tab1Root" tabTitle="Home" tabIcon="home"></ion-tab>
<ion-tab [root]="tab2Root" tabTitle="Search" tabIcon="search"></ion-tab>
<ion-tab [root]="tab3Root" tabTitle="List Providers" tabIcon="list"></ion-tab>
<ion-tab [root]="tab4Root" tabTitle="Login/Register" tabIcon="finger-print" *ngIf="loggedIn"></ion-tab>
<ion-tab tabTitle="Logout" tabIcon="exit" (click)="logout()" *ngIf="!loggedIn"></ion-tab>
</ion-tabs>
Когда я проверяю это расположение, вручную устанавливая значение логической переменной loggedIn
в tabs.ts
, оно работает как положено.
Мне нужно, чтобы вкладки автоматически переключались в зависимости от того,не пользователь вошел в систему. Когда пользователь успешно входит в систему, я устанавливаю значение loggedIn
в локальном хранилище в значение true.Затем у меня есть код ниже в моем tabs.ts
, который должен переключать кнопки входа / выхода:
loggedIn: boolean = false;
ionViewWillEnter(): void {
if (localStorage.getItem('loggedIn') == 'true') {
this.loggedIn = true;
console.log("we are logged in!");
} else {
this.loggedIn = false;
console.log("we are logged out");
}
}
Проблема, однако, состоит в том, что хотя значение переменной loggedIn устанавливается и изменяется правильно,просмотр в tabs.html
не обновляется, чтобы затем показать кнопку выхода из системы, он все еще показывает кнопку входа / регистрации.Как я могу заставить вкладку обновляться при каждом нажатии кнопки?Я попытался добавить код в функцию ionViewWillEnter()
, но она не сработала.Любая помощь будет принята с благодарностью!
Моя система:
$ ionic info
Ionic:
ionic (Ionic CLI) : 4.0.3 (/usr/local/lib/node_modules/ionic)
Ionic Framework : ionic-angular 3.9.2
@ionic/app-scripts : 3.2.0
Cordova:
cordova (Cordova CLI) : 8.0.0
Cordova Platforms : android 7.0.0
System:
Android SDK Tools : 26.1.1
NodeJS : v8.10.0 (/usr/bin/node)
npm : 3.5.2
OS : Linux 4.15
Environment:
ANDROID_HOME : /home/user/Android/Sdk