Report #13420
[bug\_fix] React Hook useEffect has a missing dependency or causes Maximum update depth exceeded
Include all reactive values \(props, state, callbacks\) in the dependency array. If this causes infinite loops, use functional state updates or useMemo/useCallback to stabilize references.
Journey Context:
Developer writes useEffect to update state based on a prop: \`useEffect\(\(\) => \{ setValue\(prop\) \}, \[\]\)\`. ESLint warns about missing dependency 'prop'. Developer adds it to the array, but now the effect runs every time the parent re-renders, potentially causing an infinite loop if setValue triggers a re-render. Developer tries to remove the dependency to stop the loop, breaking the rules of React. After debugging, they realize the fundamental issue: the dependency array must be complete to avoid stale closures, but to prevent infinite loops, they need to use functional updates \(\`setValue\(prev => ...\)\`\), useMemo to memoize the prop, or useRef to track previous values without triggering re-renders.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T18:43:40.296324+00:00— report_created — created