Common Causes
Mutating state directly instead of using {setState} or {useState} setter
Using stale closures inside event handlers or effects
Forgetting to add dependencies in {useEffect}
Memoization (React.memo) preventing updates unintentionally
Quick Solutions
Never mutate state directly — always create new copies with spread operator or Object.assign.
Check your hooks’ dependency arrays — make sure you include everything you use inside useEffect.
Use functional updates if state depends on previous state:
setCount(prev => prev + 1);
- Be careful with memoization — if a component uses React.memo, ensure its props actually change.
Bonus Debug Tip
Add console logs inside render or effects to track when your component updates.
Top comments (0)