IONIC 4 - значки вкладок остаются выделенными при программной маршрутизации - PullRequest
0 голосов
/ 26 сентября 2019

Использование Ionic 4 и вкладок.Предположим, что у нас есть Tab1 / Tab2 / Tab3 с приложением по умолчанию, созданным Ionic.Я хочу использовать аппаратную кнопку возврата, чтобы выйти из приложения, если я нахожусь в Tab1, но мне нужно вернуться на Tab1, если я на другой вкладке.

В настоящее время мой код работает, но: например,если я нахожусь в Tab2, тогда я использую аппаратную кнопку возврата, тогда маршрутизация работает, я перенаправлен на Tab1, но значок Tab2 остается выбранным.(Значок Tab1 также выбран, но это нормально, так как я был перенаправлен на эту вкладку)

tabs.html:

<ion-tab-bar slot="bottom">
  <ion-tab-button tab="tab1">
    <ion-icon name="flash"></ion-icon>
    <ion-label>Tab One</ion-label>
  </ion-tab-button>

  <ion-tab-button tab="tab2">
    <ion-icon name="apps"></ion-icon>
    <ion-label>Tab Two</ion-label>
  </ion-tab-button>

  <ion-tab-button tab="tab3">
    <ion-icon name="send"></ion-icon>
    <ion-label>Tab Three</ion-label>
  </ion-tab-button>
</ion-tab-bar>

Tab1.ts:

ionViewWillEnter() {
    this.subscription = this.platform.backButton.subscribe(() => {
      navigator['app'].exitApp();
    });
 }

Tab2.ts:

  ionViewWillEnter() {
    this.subscription = this.platform.backButton.subscribe(() => {
      this.navCtrl.navigateRoot('/tabs');
  });
 }

В Tab2.ts navcontroller прокладывает маршрут хорошоto / tabs (что означает, что в правилах маршрутизации перейдите к tab1.) Конечно, в обоих случаях подписка отменяется в ловушке жизненного цикла ionViewDidLeave.

Но в любом случае, как сделать, чтобы значок tab2 не был выбран, когдааппаратная кнопка назад используется для перехода на tab1?Это как если бы панель вкладок была уведомлена о том, что tab1 был выбран (потому что автоматически выбирается значок Tab1), но на вкладке не было извещено о снятии выбора значка Tab2.Это означает, что у меня выбраны две иконки на вкладке.

Спасибо

...