From: daiwei Date: Fri, 17 Jan 2025 01:17:28 +0000 (+0800) Subject: fix(useTemplateRef): handle useTemplateRef edge case with vFor X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f93419911649816e83a7357271184ca4e909729f;p=thirdparty%2Fvuejs%2Fcore.git fix(useTemplateRef): handle useTemplateRef edge case with vFor --- diff --git a/packages/runtime-core/src/rendererTemplateRef.ts b/packages/runtime-core/src/rendererTemplateRef.ts index ca21030dc3..ae746fe0c8 100644 --- a/packages/runtime-core/src/rendererTemplateRef.ts +++ b/packages/runtime-core/src/rendererTemplateRef.ts @@ -11,7 +11,7 @@ import { } from '@vue/shared' import { isAsyncWrapper } from './apiAsyncComponent' import { warn } from './warning' -import { isRef, toRaw } from '@vue/reactivity' +import { isRef, shallowReactive, toRaw } from '@vue/reactivity' import { ErrorCodes, callWithErrorHandling } from './errorHandling' import type { SchedulerJob } from './scheduler' import { queuePostRenderEffect } from './renderer' @@ -125,12 +125,12 @@ export function setRef( } else { if (!isArray(existing)) { if (_isString) { - refs[ref] = [refValue] + refs[ref] = shallowReactive([refValue]) if (canSetSetupRef(ref)) { setupState[ref] = refs[ref] } } else { - ref.value = [refValue] + ref.value = shallowReactive([refValue]) if (rawRef.k) refs[rawRef.k] = ref.value } } else if (!existing.includes(refValue)) {