我有一个Ionic 3 Angular应用程序,我正试图升级到Ionic 6。应用程序本身没有标签,但其中有页面有标签。
一个简化的例子:foo.html
:
<ion-header>
<!-- insert header here -->
</ion-header>
<ion-content>
<ion-tabs>
<ion-tab-bar slot="bottom">
<ion-tab-button tab="guide">
<ion-icon md="map-sharp" ios="map"></ion-icon>
<ion-label>Guide</ion-label>
</ion-tab-button>
<ion-tab-button tab="scan">
<ion-icon name="barcode-sharp"></ion-icon>
<ion-label>Scan</ion-label>
</ion-tab-button>
</ion-tab-bar>
</ion-tabs>
</ion-content>
问题是如何安排它,以便在打开foo
时,加载包含guide
页面的foo
页面,并且在foo
页面的选项卡之间切换不会卸载该页面。
(我在让foo
将选项卡设置为guide
时没有遇到问题;问题是如何使路由器正常工作。)
我尝试过的方法以及失败的原因:
- 使用
UrlHandlingStrategy
只查看最后一个组件;导致foo
页面完全被guide
页面替换,并且页眉和选项卡栏消失。 - 有
foo/guide
路由到GuidePage
;guide.html
包含ion-virtual-scroll
元素,并且它抱怨ChunkLoadError
,因为它尝试从/foo/[snip]ion-virtual-scroll[snip].js
加载块。同样,可能由于上述相同的原因而失败。
有什么好办法吗?
1条答案
按热度按时间tp5buhyn1#
有多种方法来实现这一点,我将给予一些例子,但我的头顶会是:
这类似于您尝试实现的目标https://ionicframework.com/docs/angular/navigation#child-routes-within-tab,实际上看起来很类似,都是使用子路由
如果您遇到困难,或者这对您不起作用,请告诉我,我可以在stackblitz中快速举一个例子