React Hook is called conditionally or in a loop
ReactでHooksのルールに違反した場合のエラー
概要
Reactの Hooks は特定のルールに従って使用する必要があります。条件分岐やループ内で呼び出すとエラーになります。
エラーメッセージ
React Hook "useState" is called conditionally. React Hooks must be called in the exact same order in every component render.
React Hook "useEffect" is called in a loop. React Hooks must be called at the top level of the function body.
Hooksのルール
- トップレベルでのみ呼び出す - ループ、条件分岐、ネストされた関数内で呼び出さない
- React関数からのみ呼び出す - 通常のJavaScript関数からは呼び出さない
NGパターンと修正
1. 条件分岐内でのHooks
| |
2. 早期リターン後のHooks
| |
3. ループ内でのHooks
| |
4. コールバック内でのHooks
| |
5. 動的なuseEffect依存
| |
ESLint設定
| |
| |
関連エラー
関連エラー
React の他のエラー
この記事は役に立ちましたか?