@@ -163,12 +163,6 @@ const Segmented = React.forwardRef<HTMLDivElement, SegmentedProps>(
163163 SegmentedRawOption | undefined
164164 > ( selected ) ;
165165
166- const latestVisualSelected = React . useRef ( visualSelected ) ;
167-
168- React . useEffect ( ( ) => {
169- latestVisualSelected . current = visualSelected ;
170- } ) ;
171-
172166 const [ thumbShow , setThumbShow ] = React . useState ( false ) ;
173167
174168 const doThumbAnimation = React . useCallback (
@@ -177,6 +171,10 @@ const Segmented = React.forwardRef<HTMLDivElement, SegmentedProps>(
177171 ( n ) => n . value === selectedValue ,
178172 ) ;
179173
174+ if ( segmentedItemIndex < 0 ) {
175+ return ;
176+ }
177+
180178 // find target element
181179 const toElement = containerRef . current ?. querySelector (
182180 `.${ prefixCls } -item:nth-child(${ segmentedItemIndex + 1 } )` ,
@@ -205,6 +203,12 @@ const Segmented = React.forwardRef<HTMLDivElement, SegmentedProps>(
205203 [ prefixCls , segmentedOptions ] ,
206204 ) ;
207205
206+ // get latest version of `visualSelected`
207+ const latestVisualSelected = React . useRef ( visualSelected ) ;
208+ React . useEffect ( ( ) => {
209+ latestVisualSelected . current = visualSelected ;
210+ } ) ;
211+
208212 React . useEffect ( ( ) => {
209213 // Syncing `visualSelected` when `selected` changed
210214 // and do thumb animation
0 commit comments