2017-10-16 9 views
3

私はイオン2を使用して、タブのセットを持っています。各タブには独自のナビゲーションスタックがあります。タブを変更してナビゲーションスタックのルートに移動するにはどうすればよいですか?

ユーザーが深いのタブのいずれかにいくつかのページを移動して、タブを切り替えることができます。

問題は、私が見つけていますどのようなタブ2の内容は、ユーザーが特定の順序で特定のアクションを実行した場合、その後、私はエラーを取得することである効果のタブ1で相互作用があるということです。

Runtime Error

Uncaught (in promise): removeView was not found

は、

私はイオンの内容が変更されたため、もはや存在しないビューを削除しようとしているためであると考えています。タブ1で

、ユーザがタブ2.アプリケーションがタブ2は、ルート・ページ上にロードされ、それらがローカルストレージに行われた選択を節約をロードするボタンを押します。私はタブが選択されたときにナビゲーションスタックのルートに行くことによって、この問題を防ぐことができると信じて、私はそれをどのように行うことができます

this.navCtrl.parent.select(1);

:私は、次のコードを使用してタブ2を選択しますか?

私が試した:

this.navCtrl.parent.select(1); 
this.navCtrl.parent.goToRoot(); 

しかし、これでは、何も起こりません。タブは変更されず、エラーもありません。

だから、私の質問:どのように私はタブを変更し、別のタブからナビゲーションスタックのルートに移動することができますか?

this.navCtrl 
    .setRoot('YourPage') 
    .then(() => { 
     this.navCtrl.popToRoot(); 
    }, err => console.log(err)) 
:私のアプリケーション(遅延読み込みとイオン3)の定期的なナビゲーションスタック外の一部のページについては
+0

タブ1(this.navCtrl.setRoot(tab1))のルートを設定できます。これがうまくいかない場合は、この問題を再現できる場所にコードを入れてください。 –

答えて

0

は、私は次のコードを使用し、ルート( setRoot)を設定する前に、新しいページ( popToRoot)に移動します
+0

どうすればいいですか?あなたのコードは私のページを開きますが、それは他のタブではなく、現在のnavstackで行います。私のタブを参照してルートに戻る方法はありますか? [ここ]説明するように、代わりに_navCtrl_の_ – Mike

+0

はテストされていませんが、私はあなたが_this.app.getRootNav()でそれを行うことができると思います(https://stackoverflow.com/a/42601740/5156280)。 – TGrif

関連する問題