ion-tab 选项卡属性和 ion-fab routerLink 之间的不同行为

Different behaviour between ion-tab tab attribute and ion-fab routerLink

我有一个离子标签页,其中包含要显示的事件特定信息。 已设置路由,以便将您路由到特定事件的标签页

tabs.page.html

<ion-tabs>
    <ion-tab-bar slot="bottom" mode="md">
        <ion-tab-button tab="token">
            <ion-icon src="/assets/svg/ticket-star.svg"></ion-icon>
            <ion-label>Tokens</ion-label>
        </ion-tab-button>

        <ion-tab-button tab="transactions">
            <ion-icon src="/assets/svg/empty-wallet-change.svg"></ion-icon>
            <ion-label>Transactions</ion-label>
        </ion-tab-button>

        <div class="centerd-btn"></div>

        <ion-tab-button tab="swipe">
            <ion-icon src="/assets/svg/people.svg"></ion-icon>
            <ion-label>Swipe</ion-label>
        </ion-tab-button>

        <ion-tab-button tab="buy">
            <ion-icon src="/assets/svg/card.svg"></ion-icon>
            <ion-label>Buy</ion-label>
        </ion-tab-button>

        <ion-tab-button tab="user" hidden>
        </ion-tab-button>

        <ion-tab-button tab="notifications" hidden>
        </ion-tab-button>

        <ion-tab-button tab="help" hidden>
        </ion-tab-button>

    </ion-tab-bar>
    <ion-fab vertical="bottom" horizontal="center" slot="fixed">
        <ion-fab-button routerLink="scan" routerLinkActive="active-tab" [routerLinkActiveOptions]="{exact:true}">
            <ion-icon src="/assets/svg/qr-scan.svg"></ion-icon>
        </ion-fab-button>
        <ion-label>Scan at bar</ion-label>
    </ion-fab>
</ion-tabs>

制表符-routing.module.ts

import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
import { TabsPage } from './tabs.page';

const routes: Routes = [
  {
    path: ':eventId',
    component: TabsPage,
    children: [
      {
        path: 'home',
        loadChildren: () => import('../home/home.module').then(m => m.HomePageModule)
      },
      {
        path: 'token',
        loadChildren: () => import('../token/token.module').then(m => m.TokenPageModule)
      },
      {
        path: 'transactions',
        loadChildren: () => import('../transactions/transactions.module').then(m => m.TransactionsPageModule)
      },
      {
        path: 'swipe',
        loadChildren: () => import('../swipe/swipe.module').then(m => m.SwipePageModule)
      },
      {
        path: 'buy',
        loadChildren: () => import('../buy/buy.module').then(m => m.BuyPageModule)
      },
      {
        path: 'scan',
        loadChildren: () => import('../scan/scan.module').then(m => m.ScanPageModule)
      },
      {
        path: 'notifications',
        loadChildren: () => import('../notifications/notifications.module').then(m => m.NotificationsPageModule)
      },
      {
        path: 'help',
        loadChildren: () => import('../help/help.module').then(m => m.HelpPageModule)
      },
      {
        path: 'user',
        loadChildren: () => import('../user/user.module').then(m => m.UserPageModule)
      },
      {
        path: '',
        redirectTo: '/event/swipedrinks/home',
        pathMatch: 'full'
      }
    ]
  },
  {
    path: '',
    component: TabsPage
  }
];

@NgModule({
  imports: [RouterModule.forChild(routes)],
  exports: [RouterModule]
})
export class TabsPageRoutingModule {}

除此 <ion-fab> 元素的路由外,一切正常。 我可以第一次点击它并且应用程序被正确路由到例如 /event/A4OUJTpgYfeNEF6e5k4v/scan 但是在点击另一个选项卡元素后你无法返回到扫描部分。

我没有任何控制台错误,所以我真的不知道从哪里开始。

我猜 Ionic 处理的 tab 属性与 ion-fab 元素中的 routerLink 属性不同,但是有什么选择呢?

您好,似乎在 sol ionic 中遇到了同样的问题,在侧面导航中通过使用 (click)="navController.naviagteForward('event/scan')" 和构造函数 constructor(public navController:NavController)