2017-10-30 1 views
0

Google Chrome (newest)の下で奇妙な状況が発生しています - 私はng2主導型Webアプリケーションのリストに移動し、ブラウザをタスクバーに折り畳んだ後にChromeは、自分のアプリケーションを殺している、それが復活しますとあるようAngular2はngOnInit(およびその他のライフサイクルフックメソッド)を複数回呼び出します

public ngOnInit(): void { 
    console.log("INIT CALLED"); 
} 

だからそれは見えます:5分(あるいはそう)、コンソールは私のコンポーネントがそのように、最初の時間を開始しますときに表示されるメッセージを示していますこのINIT CALLEDメッセージを示しています。何が私を殺すのは、ngOnInitが呼び出される前にngOnDestroyフックが呼び出されないということです。私のためにng2のバグのように見えるが、これを経験した誰かが私と修正を共有することができますか?

答えて

0

ngOnDestroyは、ブラウザタブが閉じられているか中断されている場合は呼び出されません。
ngOnDestroyは、Angularがコンポーネントを削除した場合にのみ呼び出されます。

タブが閉じていると、Angularは何もできません。 ブラウザタブが閉じているときにコードを呼び出す方法については、How can we detect when user closes browser?を参照してください。

+0

あなたは私の質問を読んだことがありますか? 'ngOnDestroy'の部分が1つのセンテンスのようなものでしたが、実際の問題はngOnInitが複数回呼び出されることです... –

+0

アプリケーションが破棄されて再初期化されると、' ngOnInit'が再び呼び出されることが予想されます。 –

+0

タブが破棄された場合、chrome:// discardsをチェックインできます。 –

関連する問題