【问题标题】:Ionic3 app redirects to RootPage when I push a page当我推送页面时,Ionic 3 应用程序重定向到根页面
【发布时间】:2019-01-18 11:35:59
【问题描述】:

我在基于 Ionic 3 的移动应用程序中从一个页面导航到另一个页面时遇到问题。我有一个链接,在我的主页中单击时会调用一个名为 openPage 的函数。我希望这会打开第二页,但事实并非如此。

这是我的代码:

我主页上的链接:

<a color="dark" class="dashboardicons" (click)="openPage('FaqsPage')"  href="#">
    <ion-icon name="ios-information-circle-outline" color="danger"></ion-icon>
   <br>FAQs
</a>

home.ts 文件

import { Component } from '@angular/core';
import { NavController, IonicPage } from 'ionic-angular';

@IonicPage()

@Component({
    selector: 'page-home',
    templateUrl: 'home.html'
})
export class HomePage {
    constructor(public navCtrl: NavController) {

    }

    openPage(page){
        this.navCtrl.setRoot(page);
    }

}

faqs.ts 文件(第二页)

import { Component } from '@angular/core';
import { IonicPage, NavController, NavParams } from 'ionic-angular';

@IonicPage()
@Component({
  selector: 'page-faqs',
  templateUrl: 'faqs.html',
})
export class FaqsPage {

  constructor(public navCtrl: NavController, public navParams: NavParams) {

  }

  ionViewDidLoad() {
    console.log('ionViewDidLoad FaqsPage');
  }

  ionViewWillEnter() {
    console.log('ionViewWillEnter FaqsPage');
  }

  ionViewDidEnter() {
    console.log('ionViewDidEnter FaqsPage');
  }

  ionViewWillLeave() {
    console.log('ionViewWillLeave FaqsPage');
  }

  ionViewDidLeave() {
    console.log('ionViewDidLeave FaqsPage');
  }

  ionViewWillUnload() {
    console.log('ionViewWillUnload FaqsPage');
  }

  ionViewCanEnter() {
    console.log('ionViewCanEnter FaqsPage');
  }

  ionViewCanLeave() {
    console.log('ionViewCanLeave FaqsPage');
  }
}

每次我点击链接时,第二个页面都会闪烁(出现然后消失),然后我被重定向回主页。我已经记录了第二页的生命周期事件,显然该页面贯穿了所有这些事件。我尝试使用 NavController 的 push() 和 setRoot() 方法都没有成功。我所有的页面都是延迟加载的。我做错了什么?

FaqsPage 目前是一个空白页面。它的HTML如下:

<ion-header>
    <ion-navbar>
        <ion-title>Faqs</ion-title>
    </ion-navbar>
</ion-header>
<ion-content padding></ion-content>

【问题讨论】:

  • 可以分享FaqsPage的代码吗?
  • 抱歉,您仍然没有共享调用您的页面更改方法的代码。请分享所有相关代码

标签: angular ionic3 lazy-loading


【解决方案1】:

如果您在NavController 中使用setRoot,它会将新页面设置为根页面。使用push 代替setRoot

openPage(page){
    this.navCtrl.push(page);
}

【讨论】:

  • 当我使用推送功能时应用程序的行为相同
  • @Muya George 你能重现你的问题stackblitz.com/edit/ionic-xaa1ee。那我可以给个解决办法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-10
  • 2018-09-03
  • 1970-01-01
  • 2018-04-23
  • 2023-03-14
  • 1970-01-01
相关资源
最近更新 更多