@@ -371,7 +371,7 @@ export default function generateSelector<
371
371
React . useImperativeHandle ( ref , ( ) => ( {
372
372
focus : selectorRef . current . focus ,
373
373
blur : selectorRef . current . blur ,
374
- scrollTo : listRef . current ?. scrollTo ,
374
+ scrollTo : listRef . current ?. scrollTo as ScrollTo ,
375
375
} ) ) ;
376
376
377
377
// ============================= Value ==============================
@@ -380,7 +380,9 @@ export default function generateSelector<
380
380
} ) ;
381
381
382
382
/** Unique raw values */
383
- const mergedRawValue = useMemo < RawValueType [ ] > (
383
+ const [ mergedRawValue , mergedValueMap ] = useMemo <
384
+ [ RawValueType [ ] , Map < RawValueType , LabelValueType > ]
385
+ > (
384
386
( ) =>
385
387
toInnerValue ( mergedValue , {
386
388
labelInValue : mergedLabelInValue ,
@@ -431,7 +433,7 @@ export default function generateSelector<
431
433
[ mergedOptions ] ,
432
434
) ;
433
435
434
- const getValueOption = useCacheOptions ( mergedRawValue , mergedFlattenOptions ) ;
436
+ const getValueOption = useCacheOptions ( mergedFlattenOptions ) ;
435
437
436
438
// Display options for OptionList
437
439
const displayOptions = useMemo < OptionsType > ( ( ) => {
@@ -476,7 +478,7 @@ export default function generateSelector<
476
478
const valueOptions = getValueOption ( [ val ] ) ;
477
479
const displayValue = getLabeledValue ( val , {
478
480
options : valueOptions ,
479
- prevValue : mergedValue ,
481
+ prevValueMap : mergedValueMap ,
480
482
labelInValue : mergedLabelInValue ,
481
483
optionLabelProp : mergedOptionLabelProp ,
482
484
} ) ;
@@ -511,7 +513,7 @@ export default function generateSelector<
511
513
const selectValue = ( mergedLabelInValue
512
514
? getLabeledValue ( newValue , {
513
515
options : newValueOption ,
514
- prevValue : mergedValue ,
516
+ prevValueMap : mergedValueMap ,
515
517
labelInValue : mergedLabelInValue ,
516
518
optionLabelProp : mergedOptionLabelProp ,
517
519
} )
@@ -546,7 +548,7 @@ export default function generateSelector<
546
548
labelInValue : mergedLabelInValue ,
547
549
options : newRawValuesOptions ,
548
550
getLabeledValue,
549
- prevValue : mergedValue ,
551
+ prevValueMap : mergedValueMap ,
550
552
optionLabelProp : mergedOptionLabelProp ,
551
553
} ) ;
552
554
0 commit comments