マウントされていないコンポーネントでsetState(またはforceUpdate)を呼び出せない-Reactメモリリークの問題処理
Cant Call Setstate
最近、開発プロセス中にエラーが発生しました
一般的な意味:すでにアンロードされているコンポーネントでsetStateを使用して状態を変更することはできません。これにより、アプリケーションでメモリリークが発生します。
回避策:componentWillUNmountフェーズですべての非同期タスク(例:SetState操作)をキャンセルします。
カスタマイザーがreactコンポーネントに設定されているか、イベントがDOMにバインドされている場合、コンポーネントがアンロードされたときにタイマーがクリアされないか、イベントがクリアされないか、アンロードされたコンポーネントにsetStateが設定され、結果としてメモリーリーク。フック関数componentWillUnmount()を使用して、タイマーとイベントをクリアできます。コンポーネントの早期アンロードは避けてください(コールバック関数のsetStateはコンポーネント全体の状態を変更しません)。
componentWillUnmount(){ //The hook function executed before the component is unloaded This.refs.btn.onclick = null //Clear the event bound on dom clearInterval(this.timer) //Clear the timer }