ページをナビゲーションスタックに追加し続けると、ますます多くのSimpleComponentクラスのインスタンスが作成されます。このような理由から、私は複数回「ev」イベントと火災コードを複数回購読しています。ページ変更時のイベントの購読解除
私のプランナーの例では "there"と "back"に行き、さまざまな状況でイベントを発生させることで確認できます(結果についてはコンソールの警告を確認してください)。また、ナビゲーションスタックの一番上に戻っても、依然としてサブスクリプションがあることがわかります。それは私がそれを避けるために何をすべきか、私は疑問に思う私は
を残している実際のビューではありませんので、
ionViewWillLeaveはおそらく動作していませんか?私はSimpleComponentを古いスタイルのAngularJSディレクティブのようにインクルードして、アプリケーションで何度も使用したいと思います。
import { OnDestroy } from '@angular/core';
export class SimpleComponent implements OnDestroy {
ngOnDestroy() {
this.ev.unsubscribe();
}
Angular 2 documentationから:あなたはev
からunsubscribe
ができOnDestroy
を実装することができ
export class SimpleComponent {
constructor(private ev: Events) {
this.ev.subscribe('ev', e => {
console.warn(e[0]);
});
}
}
// home.ts template
<simple-component></simple-component>
<button (click)="go()">Go next page</button>
<button (click)="raiseEv()">Raise Event</button>
問題を解決し、これは私の知る限り一歩を行くように1ページを追加(に便利ですナビゲーションスタック)、その後戻る(navスタックからページを削除する)。どうやって5ページをnavスタックにプッシュしたり、タブを切り替えるのですか?それはイオンの2つの問題、そしてタブの切り替えとnavスタックのプッシュの処理方法です。 –