@@ -443,11 +443,14 @@ class Select extends React.Component<Partial<ISelectProps>, ISelectState> {
443
443
const selectedValue = getValuePropValue ( item ) ;
444
444
const lastValue = value [ value . length - 1 ] ;
445
445
446
+ let skipTrigger = false ;
447
+
446
448
if ( isMultipleOrTags ( props ) ) {
447
449
if ( findIndexInValueBySingleValue ( value , selectedValue ) !== - 1 ) {
448
- return ;
450
+ skipTrigger = true ;
451
+ } else {
452
+ value = value . concat ( [ selectedValue ] ) ;
449
453
}
450
- value = value . concat ( [ selectedValue ] ) ;
451
454
} else {
452
455
if (
453
456
! isCombobox ( props ) &&
@@ -456,18 +459,24 @@ class Select extends React.Component<Partial<ISelectProps>, ISelectState> {
456
459
selectedValue !== this . state . backfillValue
457
460
) {
458
461
this . setOpenState ( false , { needFocus : true , fireSearch : false } ) ;
459
- return ;
462
+ skipTrigger = true ;
463
+ } else {
464
+ value = [ selectedValue ] ;
465
+ this . setOpenState ( false , { needFocus : true , fireSearch : false } ) ;
460
466
}
461
- value = [ selectedValue ] ;
462
- this . setOpenState ( false , { needFocus : true , fireSearch : false } ) ;
463
467
}
464
468
465
- this . fireChange ( value ) ;
469
+ if ( ! skipTrigger ) {
470
+ this . fireChange ( value ) ;
471
+ }
466
472
this . fireSelect ( selectedValue ) ;
467
- const inputValue = isCombobox ( props ) ? getPropValue ( item , props . optionLabelProp ) : '' ;
468
473
469
- if ( props . autoClearSearchValue ) {
470
- this . setInputValue ( inputValue , false ) ;
474
+ if ( ! skipTrigger ) {
475
+ const inputValue = isCombobox ( props ) ? getPropValue ( item , props . optionLabelProp ) : '' ;
476
+
477
+ if ( props . autoClearSearchValue ) {
478
+ this . setInputValue ( inputValue , false ) ;
479
+ }
471
480
}
472
481
} ;
473
482
0 commit comments