呼び出しが深すぎる(終わらないくり返し)
RangeError: Maximum call stack size exceeded
ひとことで言うと
「関数が自分自身を呼び続けて、終わりません」という意味です。
よくある原因
- 関数の中で、同じ関数を終わる条件なしに呼んでいる
- 2つの関数(またはコンポーネント)がお互いを呼び合っている
- set の中で、同じものを何度も更新している
自分で確かめること
- エラーに何度も出てくる関数の名前を見る
- その関数の中で、自分を呼んでいないか見る
たいていは、こうすると直ります
くり返しを止める条件を足すか、呼び合っている部分を切り離します。
AIへの伝え方
下の文をコピーして、ChatGPT・Claude・Cursor などに貼り付けてください。トップで貼り付けたエラー文があれば、自動でそれに入れかわります。
次のエラーが出て困っています。プログラミング初心者にもわかるように、原因と直し方を教えてください。必要なら、直したコードも全部見せてください。 【エラー】 RangeError: Maximum call stack size exceeded 【やったこと】 (ここに、エラーが出る前にしたことを書く。例:npm run dev を実行した) 【参考】 このエラーは「呼び出しが深すぎる(終わらないくり返し)」というもので、よくある原因は次のとおりです。 ・関数の中で、同じ関数を終わる条件なしに呼んでいる ・2つの関数(またはコンポーネント)がお互いを呼び合っている ・set の中で、同じものを何度も更新している どれに当てはまるかを確かめる方法も教えてください。