feat: make reactHost accessible #48338
Open
+15
−0
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary:
On bridgeless mode,
reactHost
is kept in memory even after destroying theDefaultReactNativeHost
in brownfield scenario. Since it keeps references to the modules, they are not deallocated, and theirinitialize
methods are not fired again when creating new instance ofreact-native
later. It breaks the behavior of e.g.react-native-screens
, which wants to listen for mutations and should get newFabricUIManager
: https://github.com/software-mansion/react-native-screens/blob/20b7e83782cd5f79ddd0d61dadc13eeb4db4b258/android/src/main/java/com/swmansion/rnscreens/ScreensModule.kt#L45.By making the variable public, we can make it
null
when destroying the RN activity, removing references to everything it kept.Changelog:
[ANDROID] [FIXED] - make it possible to set
reactHost
tonull
.Test Plan:
It shouldn't change anything since it is just change of visibility in the variable.