diff --git a/packages/components/select/__tests__/select.test.ts b/packages/components/select/__tests__/select.test.ts index e07a41e127..289a6acc5e 100644 --- a/packages/components/select/__tests__/select.test.ts +++ b/packages/components/select/__tests__/select.test.ts @@ -3246,4 +3246,34 @@ describe('Select', () => { await nextTick() expect(selectVm.selectedLabel).toBe('') }) + + // #20905 + test('display correct when label is 0 or ""', async () => { + wrapper = _mount( + ` + + + + + `, + () => ({ + options: [ + { value: '黄金糕', label: '' }, + { value: '双皮奶', label: 0 }, + { value: '蚵仔煎', label: '蚵仔煎' }, + { value: '北京烤鸭', label: undefined }, + ], + }) + ) + await nextTick() + const options = getOptions() + expect(options[0].textContent).toBe('') + expect(options[1].textContent).toBe('0') + expect(options[2].textContent).toBe('蚵仔煎') + expect(options[3].textContent).toBe('北京烤鸭') + }) }) diff --git a/packages/components/select/src/useOption.ts b/packages/components/select/src/useOption.ts index e7d321d76b..f8f3ab23a9 100644 --- a/packages/components/select/src/useOption.ts +++ b/packages/components/select/src/useOption.ts @@ -38,7 +38,7 @@ export function useOption(props: OptionProps, states: OptionStates) { }) const currentLabel = computed(() => { - return props.label || (isObject(props.value) ? '' : props.value) + return props.label ?? (isObject(props.value) ? '' : props.value) }) const currentValue = computed(() => {