enableFreeze() breaks UI updates when returning to a tab screen using FlashList and WebSocket updates
Description
Title:
enableFreeze() breaks UI updates when returning to a tab screen using FlashList and WebSocket updates
Description:
When using enableFreeze() in index.js, UI updates stop working when navigating to a screen inside a tab bar that uses FlashList and receives data via WebSocket
Expected behavior
The FlashList should update properly with incoming data after returning to the screen.
Platform
- [x] Android
- [x] iOS
- [ ] Web
- [ ] Windows
- [ ] MacOS
Environment
"@react-navigation/bottom-tabs": "7.3.14",
"@react-navigation/native": "7.1.10",
"@react-navigation/native-stack": "7.3.14",
"@shopify/flash-list": "1.8.2",
"ws": "8.18.2",
Steps to reproduce
Steps to Reproduce:
Call enableFreeze() in index.js
Navigate to a screen (within a tab navigator) that renders a FlashList and subscribes to WebSocket updates
Navigate away from the screen (e.g., to another tab)
Navigate back to the original screen
Observe that the list no longer updates even though data is still being received over the WebSocket
Snack or a link to a repository
.
Screens version
4.11.1
React Native version
0.79.3
Platforms
Android, iOS
JavaScript runtime
None
Workflow
None
Architecture
None
Build type
None
Device
None
Device model
No response
Acknowledgements
Yes
Hey! 👋
It looks like you've omitted a few important sections from the issue template.
Please complete Snack or a link to a repository section.
Hey! 👋
The issue doesn't seem to contain a minimal reproduction.
Could you provide a snack or a link to a GitHub repository under your username that reproduces the problem?
Hi, @dzengi. Can you check if using one of the most recent nightly releases of react-native-screens fixes the issue for you? They are available on npm.
This is the PR that introduced the fix: https://github.com/software-mansion/react-native-screens/pull/2963.
If the issue still persists, please provide minimal reproduction so we can have a look at the problem in more detail.