IONIC 4-以编程方式路由时,选项卡图标仍处于选中状态

问题描述 投票:0回答:1

使用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很好地路由到/ tabs(这意味着,在路由规则中,转到tab1。)当然,在两种情况下,订阅都是在ionViewDidLeave生命周期挂钩中取消订阅的。

但是无论如何,当使用硬件后退按钮导航到tab1时如何不选择tab2图标?就像是否已通知选项卡栏已选择tab1(因为已自动选择Tab1图标),但未通知选项卡栏取消选择Tab2图标一样。这意味着我在标签栏中选择了两个图标。

谢谢

ionic-framework tabs ionic4 angular-routing back-button
1个回答
0
投票

我有完全相同的问题...我试图更改选项卡中的样式,但没有任何结果。

我听说过ActivatedRoute也可能是一个问题-但我已将代码放到我的文件中,但是什么也没发生,它看起来好像ActivatedRoute没有更新。这里有示例讨论:https://github.com/ionic-team/ionic/pull/17888

我希望回答这个问题可以有所帮助,但这里也没有任何回应:https://github.com/ionic-team/ionic/issues/19953

也许您找到了解决它的方法,并且想要分享?

© www.soinside.com 2019 - 2024. All rights reserved.