Report #104460
[bug\_fix] Infinite loop in useEffect due to missing dependency array or incorrect state update
Add a dependency array to \`useEffect\` with the correct dependencies. If the effect depends on a state that it updates, ensure the update doesn't trigger the effect again unless intended. Use functional updates for setState to avoid stale closures. Alternatively, use \`useReducer\` or \`useRef\` to track whether the effect should run.
Journey Context:
A developer writes a \`useEffect\` that fetches data and sets state, but forgets to include a dependency array. The effect runs after every render, causing a fetch -> setState -> re-render -> effect again loop. The browser freezes or the app crashes. The developer may not see the console error immediately. The rabbit hole involves checking network requests, looking for infinite re-renders via React DevTools. The fix is to add an empty dependency array \`\[\]\` for a mount-only effect, or include the necessary dependencies. Another variant: the effect depends on a state variable that it updates, causing a loop. The root cause is that without a dependency array, the effect runs after every render. The proven fix is to always provide a dependency array, and if you need to run only once, use \`\[\]\`.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-08-23T20:03:56.101197+00:00— report_created — created