Приложение Ionic3 перенаправляет на RootPage, когда я нажимаю на страницу - PullRequest
0 голосов
/ 18 января 2019

У меня проблемы с переходом с одной страницы на другую в моем мобильном приложении на базе 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 file

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');
  }
}

Каждый раз, когда я нажимаю на ссылку, вторая страница мигает (появляется, а затем исчезает), затем яперенаправлен обратно на домашнюю страницу.Я зарегистрировал события жизненного цикла второй страницы, и, очевидно, страница проходит через все из них.Я пытался с методами push () и setRoot (), используя NavController без успеха.Все мои страницы загружены лениво.Что я делаю не так?

FaqsPage на данный момент является пустой страницей.Это HTML выглядит следующим образом:

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

1 Ответ

0 голосов
/ 18 января 2019

Если вы используете setRoot в NavController, это устанавливает новую страницу в качестве корневой. используйте push вместо setRoot.

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