@@ -163,15 +163,18 @@ const SearchSelect = <T,>(props: SearchSelectProps<T[]>, ref: any) => {
163
163
const getMergeValue : SelectProps < any > [ 'onChange' ] = ( value , option ) => {
164
164
if ( Array . isArray ( value ) && Array . isArray ( option ) && value . length > 0 ) {
165
165
// 多选情况且用户有选择
166
+
166
167
return value . map ( ( item , index ) => {
167
168
const optionItem = ( option as DefaultOptionType [ ] ) ?. [
168
169
index
169
170
] as DefaultOptionType ;
170
- const dataItem = optionItem ?. [ 'data-item' ] || { } ;
171
+ const dataItem = optionItem ?. [ 'data-item' ] ;
172
+
171
173
return {
172
- ...dataItem ,
174
+ ...( dataItem || { } ) ,
173
175
...item ,
174
- label : preserveOriginalLabel ? dataItem . label : item . label ,
176
+ label :
177
+ preserveOriginalLabel && dataItem ? dataItem . label : item . label ,
175
178
} ;
176
179
} ) ;
177
180
}
@@ -253,11 +256,7 @@ const SearchSelect = <T,>(props: SearchSelectProps<T[]>, ref: any) => {
253
256
?. toString ( )
254
257
. toLowerCase ( )
255
258
. includes ( inputValue . toLowerCase ( ) ) ||
256
- option ?. label
257
- ?. toString ( )
258
- . toLowerCase ( )
259
- . includes ( inputValue . toLowerCase ( ) ) ||
260
- option ?. value
259
+ option ?. [ optionFilterProp ]
261
260
?. toString ( )
262
261
. toLowerCase ( )
263
262
. includes ( inputValue . toLowerCase ( ) )
@@ -297,9 +296,10 @@ const SearchSelect = <T,>(props: SearchSelectProps<T[]>, ref: any) => {
297
296
? {
298
297
...value ,
299
298
// 这里有一种情况,如果用户使用了 request和labelInValue,保存之后,刷新页面,正常回显,但是再次添加会出现 label 丢失的情况。所以需要兼容
300
- label : preserveOriginalLabel
301
- ? dataItem ?. label || value . label
302
- : value . label ,
299
+ label :
300
+ preserveOriginalLabel && dataItem
301
+ ? dataItem ?. label || value . label
302
+ : value . label ,
303
303
}
304
304
: value ;
305
305
onChange ?.( changedValue , optionList , ...rest ) ;
@@ -308,7 +308,10 @@ const SearchSelect = <T,>(props: SearchSelectProps<T[]>, ref: any) => {
308
308
{
309
309
...value ,
310
310
...dataItem ,
311
- label : preserveOriginalLabel ? dataItem . label : value . label ,
311
+ label :
312
+ preserveOriginalLabel && dataItem
313
+ ? dataItem . label
314
+ : value . label ,
312
315
} ,
313
316
optionList ,
314
317
...rest ,
0 commit comments