fix: separate the internal ref from the external one for correct operation of useImperativeHandle
and getBoundingClientRect
#738
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:
Here, a single ref is used both for working with
useImperativeHandle
and for obtaining the position viagetBoundingClientRect
.However, when calling
getBoundingClientRect
, the ref does not exist. It is likely that the implementation ofuseImperativeHandle
has changed in React19 and itscreateHandle
callback overrides current.updateValue
via ref - always call theonValueChange
callback.Test Plan:
I've create an
ControlledSliderExample
insrc/Examples
:Screen.Recording.2025-10-14.at.15.12.43.mov