-
Notifications
You must be signed in to change notification settings - Fork 50k
Description
We’re seeing a production-only flicker regression for flushSync calls in React 19.2 that does not occur in React 19.1.
Demo Links
-
React 19.1 (no flicker):
https://deploy-preview-8--react-responsive-overflow-list.netlify.app/ -
React 19.2 (visible flicker):
https://deploy-preview-10--react-responsive-overflow-list.netlify.app/Note: performance throttling was enabled here to see flickering more clearly while resize
What Happens
The component relies on flushSync inside useResizeObserver:
https://github.com/Eliav2/react-responsive-overflow-list/blob/main/src/hooks/useResizeObserver.ts
On resize, we intentionally trigger synchronous layout updates using flushSync to prevent any intermediate visual state from appearing.
Behavior Difference
React 19.1:
flushSync blocks and applies the update immediately — the intermediate state never appears.
React 19.2:
React momentarily exposes the intermediate layout state even inside a flushSync block in production builds, resulting in a very short but noticeable flicker.
Additional Notes
- Flicker only appears in production builds of React 19.2.
- Both 19.1 and 19.2 do not flicker in local development mode.
- No code changes between demos—only the React version changed.

