فهرست منبع

fix(templateRef): delay setting the ref value if wrapped in Suspense

daiwei 1 سال پیش
والد
کامیت
58cf2365e4
1فایلهای تغییر یافته به همراه7 افزوده شده و 0 حذف شده
  1. 7 0
      packages/runtime-core/src/rendererTemplateRef.ts

+ 7 - 0
packages/runtime-core/src/rendererTemplateRef.ts

@@ -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(