From b44c3bad755a21f60188b6b431611f61a5fc35f7 Mon Sep 17 00:00:00 2001 From: SaberAlter Date: Sun, 19 Jan 2025 01:52:24 +0800 Subject: [PATCH] =?UTF-8?q?fix(input):=20=E4=BF=AE=E5=A4=8D=20input=20?= =?UTF-8?q?=E5=86=85=20preValue=20=E8=AE=A1=E7=AE=97=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E9=97=AE=E9=A2=98(#3347)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/web-vue/components/input/input.tsx | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/web-vue/components/input/input.tsx b/packages/web-vue/components/input/input.tsx index bd322015d..520ff5ebb 100644 --- a/packages/web-vue/components/input/input.tsx +++ b/packages/web-vue/components/input/input.tsx @@ -201,6 +201,7 @@ export default defineComponent({ // 值相关 const _value = ref(props.defaultValue); const computedValue = computed(() => props.modelValue ?? _value.value); + let preValue = computedValue.value; watch(modelValue, (value) => { if (isUndefined(value) || isNull(value)) { @@ -208,7 +209,9 @@ export default defineComponent({ } }); - let preValue = computedValue.value; + watch(computedValue, (value, oldValue) => { + preValue = oldValue; + }); // 状态相关 const focused = ref(false); @@ -283,7 +286,6 @@ export default defineComponent({ const emitChange = (value: string, ev: Event) => { if (value !== preValue) { - preValue = value; emit('change', value, ev); eventHandlers.value?.onChange?.(ev); } @@ -291,7 +293,6 @@ export default defineComponent({ const handleFocus = (ev: FocusEvent) => { focused.value = true; - preValue = computedValue.value; emit('focus', ev); eventHandlers.value?.onFocus?.(ev); };