Răsfoiți Sursa

fix: preserve current hydration node during slot insertion

daiwei 11 luni în urmă
părinte
comite
a6e039865e
1 a modificat fișierele cu 8 adăugiri și 1 ștergeri
  1. 8 1
      packages/runtime-vapor/src/component.ts

+ 8 - 1
packages/runtime-vapor/src/component.ts

@@ -568,12 +568,19 @@ export function createComponentWithFallback(
   }
 
   if (rawSlots) {
-    isHydrating && setCurrentHydrationNode(el.firstChild)
+    let prev: Node
+    if (isHydrating) {
+      prev = currentHydrationNode!
+      setCurrentHydrationNode(el.firstChild)
+    }
     if (rawSlots.$) {
       // TODO dynamic slot fragment
     } else {
       insert(getSlot(rawSlots as RawSlots, 'default')!(), el)
     }
+    if (isHydrating) {
+      setCurrentHydrationNode(prev!)
+    }
   }
 
   if (!isHydrating && _insertionParent) {