]> git.ipfire.org Git - thirdparty/vuejs/core.git/commitdiff
fix(transition): should reset enter class after appear (#1152)
authorunderfin <2218301630@qq.com>
Mon, 11 May 2020 16:30:10 +0000 (00:30 +0800)
committerGitHub <noreply@github.com>
Mon, 11 May 2020 16:30:10 +0000 (12:30 -0400)
packages/runtime-dom/src/components/Transition.ts

index 67c85d0052bb6551b87e8af5288878b5d326d129..c2d52dc0201d8e44f3322e30a7660778cd2a4dd8 100644 (file)
@@ -77,6 +77,7 @@ export function resolveTransitionProps({
     return baseProps
   }
 
+  const originEnterClass = [enterFromClass, enterActiveClass, enterToClass]
   const instance = getCurrentInstance()!
   const durations = normalizeDuration(duration)
   const enterDuration = durations && durations[0]
@@ -84,7 +85,7 @@ export function resolveTransitionProps({
   const { appear, onBeforeEnter, onEnter, onLeave } = baseProps
 
   // is appearing
-  if (appear && !getCurrentInstance()!.isMounted) {
+  if (appear && !instance.isMounted) {
     enterFromClass = appearFromClass
     enterActiveClass = appearActiveClass
     enterToClass = appearToClass
@@ -96,6 +97,10 @@ export function resolveTransitionProps({
     removeTransitionClass(el, enterToClass)
     removeTransitionClass(el, enterActiveClass)
     done && done()
+    // reset enter class
+    if (appear) {
+      ;[enterFromClass, enterActiveClass, enterToClass] = originEnterClass
+    }
   }
 
   const finishLeave: Hook = (el, done) => {