Skip to content

Commit bf45e8c

Browse files
committed
fix defaultValue with labelInValue not pass to Select value display
fix ant-design/ant-design#16919
1 parent 9a0d4f9 commit bf45e8c

File tree

2 files changed

+15
-3
lines changed

2 files changed

+15
-3
lines changed

src/Select.tsx

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -624,9 +624,12 @@ class Select extends React.Component<Partial<ISelectProps>, ISelectState> {
624624
}
625625
let defaultLabel = value;
626626
if (this.props.labelInValue) {
627-
const label = getLabelFromPropsValue(this.props.value, value);
628-
if (label !== undefined) {
629-
defaultLabel = label;
627+
const valueLabel = getLabelFromPropsValue(this.props.value, value);
628+
const defaultValueLabel = getLabelFromPropsValue(this.props.defaultValue, value);
629+
if (valueLabel !== undefined) {
630+
defaultLabel = valueLabel;
631+
} else if (defaultValueLabel !== undefined) {
632+
defaultLabel = defaultValueLabel;
630633
}
631634
}
632635
const defaultInfo = {

tests/Select.spec.tsx

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -370,6 +370,15 @@ describe('Select', () => {
370370
expect(wrapper.find('.rc-select-selection-selected-value').text()).toEqual('One');
371371
});
372372

373+
it('use label in props.defaultValue', () => {
374+
const wrapper = mount<Select>(
375+
<Select labelInValue={true} defaultValue={{ key: 1, label: 'One' }}>
376+
<Option value="2">Two</Option>
377+
</Select>,
378+
);
379+
expect(wrapper.find('.rc-select-selection-selected-value').text()).toEqual('One');
380+
});
381+
373382
it('fires search event when user input', () => {
374383
const handleSearch = jest.fn();
375384
const wrapper = mount<Select>(

0 commit comments

Comments
 (0)