0

コンポーネント ページをサービスを介して別のページに渡すと、その別のコンポーネントは「未定義 [?]」でインスタンス化に失敗します。

これを達成する方法は?(コンテキスト: コンポーネント ナビゲーションを 1 つのサービスに集中できるようにするため)

アップデート

これは私たちの現在の回避策であり、Ionic Beta や Angular Beta のほとんどと同じように醜いものです。これは「PassThroughComponent」であり、navService を介してコンポーネントからコンポーネントへ動的にナビゲートするたびに呼び出されます (ユーザー ジャーニーを計算するいくつかのアルゴリズムがあります)。

  ngOnInit() {
        this.nextPage(this.navService.getNextPage())
    }

    nextPage(nextPageString) {
        switch (nextPageString) {
            case "Fairytales":
                this.navController.push(Fairytales);
                break;
            case "Bitcoin":
                this.navController.push(Bitcoin);
                break;
            case "Unicorns":
                this.navController.push(Unicorns);
                break;
            case "Rainbows":
                this.navController.push(Rainbows);
                break;
            case "Marbles":
                this.navController.push(Marbles);
                break;
            case "Dogs":
                this.navController.push(Dogs);
                break;
            case "Cats":
                this.navController.push(Cats)
                break;
            default:
                console.log("Unknown page", nextPageString)
        }
    }

動作しない:

import { Nav } from 'ionic-angular'

@Injectable()
export class NavService {

   @ViewChild(Nav) nav;
   public dismiss() {
       this.nav.setRoot(HomePage)
   }
   ...

browser_adapter.js:84 元の例外: TypeError: 未定義のプロパティ 'setRoot' を読み取れません

また、navController では動作しません。

4

0 に答える 0