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
This pull request aims to address the lack of Shared Element Transition in Expo Go. The issue stemmed from the initialization process of SET. In Expo Go, Reanimated gets instantiated twice (once for the Expo client and once for the actual application). During initialization,
REASharedTransitionManager
attempts to swizzle certain methods fromreact-native-screens
but aims to do so only once:The variable
_isConfigured
was only set to true if the swizzling process completed successfully. The problem appeared when the second instance attempted to set up thescreens
integration, as it had already been done, resulting in the new instance failing to set_isConfigured
to true, even if the method swizzling was successful.The solution involves changing
_isConfigured
to a class field instead of an instance field.Test plan
Run Shared Element Transition in Expo Go