Open emitchel opened 3 months ago
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 @emitchel, thanks for filling this issue! Yeah, using Jetpack Compose along React Native Screens have already been heavily discussed in our internal Screens Team 😄 We've got this task of supporting Jetpack Compose on our agenda. Thanks!
Description
tldr; Jetpack ComposeViews do not maintain state or recompose upon returning to a Screen with a ComposeView driving a component of the Screen.
Suppose you have three screens, screens A, B and C
Screen B has a View that links to a
ComposeView(..)
from Android Navigating to Screen C, then returning to Screen B, the ComposeView driven component is goneAccording to this issue tracker, https://issuetracker.google.com/issues/284424175, the issue lies within how ScreenFragment recycles the views https://github.com/software-mansion/react-native-screens/blob/main/android/src/main/java/com/swmansion/rnscreens/ScreenFragment.kt#L307-L321
https://github.com/react-native-community/discussions-and-proposals/issues/446#issuecomment-1012686694
Project to repro (thanks to @thevoiceless) - https://github.com/thevoiceless/RN-Compose-Playground
https://github.com/software-mansion/react-native-screens/assets/3791583/e0a08eb2-4eab-4ca1-ae8e-a3c4e37d1688
Steps to reproduce
Snack or a link to a repository
https://github.com/thevoiceless/RN-Compose-Playground
Screens version
3.21.0
React Native version
0.73.5
Platforms
Android
JavaScript runtime
None
Workflow
None
Architecture
None
Build type
None
Device
None
Device model
No response
Acknowledgements
Yes