]> git.ipfire.org Git - thirdparty/vuejs/core.git/commitdiff
fix(templateRef): delay setting the ref value if wrapped in Suspense
authordaiwei <daiwei521@126.com>
Mon, 30 Sep 2024 01:42:40 +0000 (09:42 +0800)
committerdaiwei <daiwei521@126.com>
Mon, 30 Sep 2024 01:42:40 +0000 (09:42 +0800)
packages/runtime-core/src/rendererTemplateRef.ts

index 1ffe3035794da8adbee967ad749c0f0eec0df33b..c6da0b14a607f118838680ee12409509aa51c196 100644 (file)
@@ -28,6 +28,13 @@ export function setRef(
   vnode: VNode,
   isUnmount = false,
 ): void {
+  if (parentSuspense) {
+    queuePostRenderEffect(() => {
+      setRef(rawRef, oldRawRef, null, vnode, isUnmount)
+    }, parentSuspense)
+    return
+  }
+
   if (isArray(rawRef)) {
     rawRef.forEach((r, i) =>
       setRef(