]> git.ipfire.org Git - thirdparty/vuejs/core.git/commitdiff
fix(runtime-core): do not call transition enter hooks when mounting in suspense ...
authorunderfin <2218301630@qq.com>
Wed, 15 Jul 2020 13:24:16 +0000 (21:24 +0800)
committerGitHub <noreply@github.com>
Wed, 15 Jul 2020 13:24:16 +0000 (09:24 -0400)
fix #1583

packages/runtime-core/src/renderer.ts

index cbde56acb62450bb00d03b608a8e040f3133de61..8b2d4bc3d50960d60b6fde72db293653b85e4641 100644 (file)
@@ -736,14 +736,17 @@ function baseCreateRenderer(
     }
 
     hostInsert(el, container, anchor)
+    // #1583 For inside suspense case, enter hook should call when suspense resolved
+    const needCallTransitionHooks =
+      !parentSuspense && transition && !transition.persisted
     if (
       (vnodeHook = props && props.onVnodeMounted) ||
-      (transition && !transition.persisted) ||
+      needCallTransitionHooks ||
       dirs
     ) {
       queuePostRenderEffect(() => {
         vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode)
-        transition && !transition.persisted && transition.enter(el)
+        needCallTransitionHooks && transition!.enter(el)
         dirs && invokeDirectiveHook(vnode, null, parentComponent, 'mounted')
       }, parentSuspense)
     }