@@ -161,6 +161,7 @@ export interface TreeSelectProps<
161161 listItemHeight ?: number ;
162162 listItemScrollOffset ?: number ;
163163 onDropdownVisibleChange ?: ( open : boolean ) => void ;
164+ treeTitleRender ?: ( node : ValueType ) => React . ReactNode ;
164165
165166 // >>> Tree
166167 treeLine ?: boolean ;
@@ -237,6 +238,7 @@ const TreeSelect = React.forwardRef<BaseSelectRef, TreeSelectProps>((props, ref)
237238 showTreeIcon,
238239 switcherIcon,
239240 treeMotion,
241+ treeTitleRender,
240242
241243 ...restProps
242244 } = props ;
@@ -438,9 +440,16 @@ const TreeSelect = React.forwardRef<BaseSelectRef, TreeSelectProps>((props, ref)
438440 // Back fill with origin label
439441 const labeledValues = values . map ( val => {
440442 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+ }
441450 return {
442451 value : val ,
443- label : targetItem ?. label ,
452+ label,
444453 } ;
445454 } ) ;
446455
@@ -671,6 +680,7 @@ const TreeSelect = React.forwardRef<BaseSelectRef, TreeSelectProps>((props, ref)
671680 fieldNames : mergedFieldNames ,
672681 onSelect : onOptionSelect ,
673682 treeExpandAction,
683+ treeTitleRender,
674684 } ) ,
675685 [
676686 virtual ,
@@ -682,6 +692,7 @@ const TreeSelect = React.forwardRef<BaseSelectRef, TreeSelectProps>((props, ref)
682692 mergedFieldNames ,
683693 onOptionSelect ,
684694 treeExpandAction ,
695+ treeTitleRender ,
685696 ] ,
686697 ) ;
687698
0 commit comments