Ionic navCtrl.setPages не работает в app.component.ts - PullRequest
0 голосов
/ 17 января 2019

В моем файле app.component.ts у меня есть код, который отправляет пользователя на другую страницу, если он нажимает на уведомление FCM Код выглядит примерно так:

this.fcm.listenToNotifications().subscribe(async(notification) => {             
    if (notification.tap) {
        const pages = [
            {page: Page1},
            {page: Page1Subpage, params: {...}}
        ];
    this.navCtrl.setPages(pages);
    this.navCtrl.parent.select(1);
}

Когда я выполняю уведомление, я вижу следующую ошибку в моем редакторе Xcode:

2019-01-17 16:55:13.230990+0200 Adservio[2103:800067] ERROR: Unhandled Promise rejection: null is not an object (evaluating 'this.navCtrl.setPages') ; Zone: <root> ; Task: Promise.then ; Value: TypeError: null is not an object (evaluating 'this.navCtrl.setPages') http://localhost:8080/var/containers/Bundle/Application/9301607C-7904-4404-B00D-FE8D9E7EED17/Adservio.app/www/build/main.js:1:1380986

Кто-нибудь знает, почему?

Ответы [ 2 ]

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

Здесь связана Документация

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

Но вы можете использовать Nav 1017 *

import { Nav } from 'ionic-angular';

//....

export class MyApp {

@ViewChild(Nav) nav: Nav;

//...

//And inside your function 

//..

this.nav.push('Page1');

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

В корневой части вы должны использовать Nav и не NavController. Смотрите больше здесь: https://ionicframework.com/docs/api/navigation/NavController/#navigating-from-the-root-component

Вы не можете вводить NavController, потому что любые компоненты, контроллеры навигации являются потомками корневого компонента, поэтому они не доступны для инъекций.

Также проверьте реализацию справочного приложения: https://github.com/ionic-team/ionic-conference-app/blob/v3/src/app/app.component.ts

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...