Просмотр исходного кода

fix(runtime-core): should correctly call `beforeEnter` inside `Suspense` (#1805)

fix #1795
underfin 5 лет назад
Родитель
Сommit
bc6f252c4a
1 измененных файлов с 4 добавлено и 6 удалено
  1. 4 6
      packages/runtime-core/src/renderer.ts

+ 4 - 6
packages/runtime-core/src/renderer.ts

@@ -752,19 +752,17 @@ function baseCreateRenderer(
       if (treeOwnerId && treeOwnerId !== scopeId) {
         hostSetScopeId(el, treeOwnerId + '-s')
       }
-
-      if (transition && !transition.persisted) {
-        transition.beforeEnter(el)
-      }
     }
-
-    hostInsert(el, container, anchor)
     // #1583 For inside suspense + suspense not resolved case, enter hook should call when suspense resolved
     // #1689 For inside suspense + suspense resolved case, just call it
     const needCallTransitionHooks =
       (!parentSuspense || (parentSuspense && parentSuspense!.isResolved)) &&
       transition &&
       !transition.persisted
+    if (needCallTransitionHooks) {
+      transition!.beforeEnter(el)
+    }
+    hostInsert(el, container, anchor)
     if (
       (vnodeHook = props && props.onVnodeMounted) ||
       needCallTransitionHooks ||