File tree Expand file tree Collapse file tree 2 files changed +16
-7
lines changed Expand file tree Collapse file tree 2 files changed +16
-7
lines changed Original file line number Diff line number Diff line change @@ -380,7 +380,10 @@ export default function generateSelector<
380
380
// Should reset when controlled to be uncontrolled
381
381
const prevValueRef = React . useRef ( value ) ;
382
382
React . useEffect ( ( ) => {
383
- if ( prevValueRef . current !== value && value === undefined ) {
383
+ if (
384
+ prevValueRef . current !== value &&
385
+ ( value === undefined || value === null )
386
+ ) {
384
387
setInnerValue ( undefined ) ;
385
388
}
386
389
prevValueRef . current = value ;
Original file line number Diff line number Diff line change @@ -1449,13 +1449,19 @@ describe('Select.Basic', () => {
1449
1449
expect ( wrapper . find ( 'List' ) . props ( ) . data ) . toHaveLength ( 1 ) ;
1450
1450
} ) ;
1451
1451
1452
- it ( 'reset value to undefined should reset display value' , ( ) => {
1453
- const wrapper = mount ( < Select value = "light" /> ) ;
1454
- expect ( wrapper . find ( '.rc-select-selection-item' ) . text ( ) ) . toEqual ( 'light' ) ;
1452
+ describe ( 'reset value to undefined should reset display value' , ( ) => {
1453
+ [ undefined , null ] . forEach ( value => {
1454
+ it ( `to ${ value } ` , ( ) => {
1455
+ const wrapper = mount ( < Select value = "light" /> ) ;
1456
+ expect ( wrapper . find ( '.rc-select-selection-item' ) . text ( ) ) . toEqual (
1457
+ 'light' ,
1458
+ ) ;
1455
1459
1456
- wrapper . setProps ( { value : undefined } ) ;
1457
- wrapper . update ( ) ;
1458
- expect ( wrapper . find ( '.rc-select-selection-item' ) ) . toHaveLength ( 0 ) ;
1460
+ wrapper . setProps ( { value } ) ;
1461
+ wrapper . update ( ) ;
1462
+ expect ( wrapper . find ( '.rc-select-selection-item' ) ) . toHaveLength ( 0 ) ;
1463
+ } ) ;
1464
+ } ) ;
1459
1465
} ) ;
1460
1466
1461
1467
describe ( 'disabled on open' , ( ) => {
You can’t perform that action at this time.
0 commit comments