Fix race-condition during component initialization #7742
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.
Problem Overview
When a child receives an animated style as a prop from a parent component and the animation is already running, it's possible for heavy components that the view descriptor registration will be called after the animation has finished. As a result, no effect of the animation will be applied, or the component will end up with a state from the middle of the animation.
Solution
This PR modifies the view descriptor's
add
method such that after the registration of the descriptor, it triggers a force update of the component on the UI. This ensures that the component will have all potentially already computed animation styles applied.Demo
Screen.Recording.2025-07-14.at.12.26.09.mov
Screen.Recording.2025-07-14.at.12.24.56.mov
Example
code