カテゴリ:エラー, React, フック
投稿日:12/20/2021
更新日:12/20/2021
本記事では「React Hook React.useEffect has a missing dependency: '~~~'. Either include it or remove the dependency array」の警告を消す方法について解説いたします。
フックに関する記述はこちらになります。(パフォーマンス最適化)
今回警告の発生している個所のソースコードは以下になります。
ソースコードを確認するとuseEffect内で使用されている'data.title'の依存関係が明示されていない為に警告が発生しているようです。(dataはuseEffect外で宣言されているオブジェクト)
警告を解除する為には以下のように行7の[ ](useEffect のオプションの第2引数)にdataを追加することで依存関係を明示化、さらに再レンダーで指定した値が変わっていない場合には副作用の適用をスキップするようReactに伝えることができます。
上記の様にuseEffectの第2引数にdataを追加することで警告を解除することができます。
推奨されていませんが警告を消したいだけなら以下の様に第2引数の配列を消すだけでも警告を解除することができます。
参考文献(上部URL)にもあるように依存するオブジェクトが存在する場合には条件付き(第2引数を指定する)で実行することが望ましいようです。(バグの温床となることを防ぐ必要があります)