自从我将Ionic 2项目迁移到Ionic 3后,我似乎遇到了ionic serve
的问题并重建了该项目。
当我第一次构建项目时,一切都按预期工作。但我注意到浏览器的URL栏跳转到类似localhost:8100/#/home.page/tabs/t0/tab-0/feed.page
的内容。在它从未这样做之前,它只显示localhost:8100
而没有别的。
我的应用逻辑是:有一个更改home.page
部分的菜单,home.page
中有一个标签栏导航到第一个标签feed.page
。
问题1 :在迁移之前,我在应用程序中浏览时从未见过任何网址更改。
第2期:使用我的代码后,Ionic CLI会像往常一样自动重建代码。然后它实际上应该显示与以前相同的页面,但事实并非如此。 home.page
的父菜单突然隐藏,只显示feed.page
及其内容。 Feed页面外的所有内容都已消失。
为什么会发生这种情况,我该怎么办呢?它可能只是一个配置,但我无法找到它。
答案 0 :(得分:1)
经过数小时的调查,我终于找到了问题。
情景1:
如果您在浏览器中加载localhost:8100/
,应用程序将按预期启动。
情景2:
如果你加载localhost:8100/#/home.page/tabs/t0/tab-0/feed.page
,那么所有涉及和延迟加载的页面实际上都被加载了两次,最后" kill"关闭菜单。
我现在知道的事情:
this.nav.setRoot(HomePage)
我不知道的是:
HomePage
构造函数?以下是解决方法:
在我的app的构造函数中使用它,HomePage
如果已经构造,则不会第二次构造:
if (this.nav.getActive() instanceof ViewController === false || this.nav.getActive().name !== "HomePage") {
this.nav.setRoot("HomePage");
}