Report #100544
[bug\_fix] ESLint warning / runtime bug: "React Hook useEffect has a missing dependency: 'xxx'."
List every reactive value \(props, state, variables/functions declared in the component\) that the effect reads inside its dependency array. If adding a function causes an infinite loop, memoize the function with useCallback or move its logic directly into the effect. If a value is truly constant, move it outside the component so it is no longer reactive. Never disable the exhaustive-deps rule.
Journey Context:
My effect fetched user data based on a userId prop but had an empty dependency array. It worked on first load, but after navigating to a different user the UI stayed stale. The linter flagged the missing userId dependency. I added userId, then the effect started looping because the fetch helper was recreated every render. I moved the fetch logic into the effect and listed only userId, which let React re-synchronize exactly when the prop changed. The key insight is that the dependency array is not a lifecycle control—it is the complete list of values the effect uses.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-07-02T04:41:12.651979+00:00— report_created — created