From bcf48a2c8dd2e4696f185a4fd98da1a6253e21c4 Mon Sep 17 00:00:00 2001 From: zhaozhongyu Date: Tue, 3 Aug 2021 09:37:52 +0800 Subject: [PATCH] fix: select option does not delete in onBeforeMount (#2753) Co-authored-by: zhaozhongyu --- packages/select/src/option.vue | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/select/src/option.vue b/packages/select/src/option.vue index 45c5392669..30c21b090a 100644 --- a/packages/select/src/option.vue +++ b/packages/select/src/option.vue @@ -67,20 +67,21 @@ export default defineComponent({ } = toRefs(states) const vm = getCurrentInstance().proxy + const key = (vm as unknown as SelectOptionProxy).value select.onOptionCreate(vm as unknown as SelectOptionProxy) onBeforeUnmount(() => { const { selected } = select let selectedOptions = select.props.multiple ? selected : [selected] - const doesExist = select.cachedOptions.has(props.value) + const doesExist = select.cachedOptions.has(key) const doesSelected = selectedOptions.some(item => { return item.value === (vm as unknown as SelectOptionProxy).value }) // if option is not selected, remove it from cache if (doesExist && !doesSelected) { - select.cachedOptions.delete(props.value) + select.cachedOptions.delete(key) } - select.onOptionDestroy(props.value) + select.onOptionDestroy(key) }) function selectOptionClick() {