@@ -161,6 +161,7 @@ export interface TreeSelectProps<
161
161
listItemHeight ?: number ;
162
162
listItemScrollOffset ?: number ;
163
163
onDropdownVisibleChange ?: ( open : boolean ) => void ;
164
+ treeTitleRender ?: ( node : ValueType ) => React . ReactNode ;
164
165
165
166
// >>> Tree
166
167
treeLine ?: boolean ;
@@ -237,6 +238,7 @@ const TreeSelect = React.forwardRef<BaseSelectRef, TreeSelectProps>((props, ref)
237
238
showTreeIcon,
238
239
switcherIcon,
239
240
treeMotion,
241
+ treeTitleRender,
240
242
241
243
...restProps
242
244
} = props ;
@@ -438,9 +440,16 @@ const TreeSelect = React.forwardRef<BaseSelectRef, TreeSelectProps>((props, ref)
438
440
// Back fill with origin label
439
441
const labeledValues = values . map ( val => {
440
442
const targetItem = rawLabeledValues . find ( item => item . value === val ) ;
443
+ let label ;
444
+ // Ensure that when labelInValue is true, if label is undefined, it remains undefined.
445
+ if ( labelInValue && targetItem . label !== undefined ) {
446
+ label = targetItem . label ;
447
+ } else if ( ! labelInValue && treeTitleRender ) {
448
+ label = treeTitleRender ( targetItem ) ;
449
+ }
441
450
return {
442
451
value : val ,
443
- label : targetItem ?. label ,
452
+ label,
444
453
} ;
445
454
} ) ;
446
455
@@ -671,6 +680,7 @@ const TreeSelect = React.forwardRef<BaseSelectRef, TreeSelectProps>((props, ref)
671
680
fieldNames : mergedFieldNames ,
672
681
onSelect : onOptionSelect ,
673
682
treeExpandAction,
683
+ treeTitleRender,
674
684
} ) ,
675
685
[
676
686
virtual ,
@@ -682,6 +692,7 @@ const TreeSelect = React.forwardRef<BaseSelectRef, TreeSelectProps>((props, ref)
682
692
mergedFieldNames ,
683
693
onOptionSelect ,
684
694
treeExpandAction ,
695
+ treeTitleRender ,
685
696
] ,
686
697
) ;
687
698
0 commit comments