fix(transition): fix css:false with hooks with no explicit done callback

close #1149
This commit is contained in:
Evan You
2020-06-25 17:40:49 -04:00
parent 2ff8dcab0a
commit 9edbc27f45
2 changed files with 50 additions and 14 deletions

View File

@@ -343,6 +343,9 @@ export function resolveTransitionHooks(
})
if (hook) {
hook(el, done)
if (hook.length <= 1) {
done()
}
} else {
done()
}
@@ -358,7 +361,7 @@ export function resolveTransitionHooks(
}
callHook(onBeforeLeave, [el])
let called = false
const afterLeave = (el._leaveCb = (cancelled?) => {
const done = (el._leaveCb = (cancelled?) => {
if (called) return
called = true
remove()
@@ -374,9 +377,12 @@ export function resolveTransitionHooks(
})
leavingVNodesCache[key] = vnode
if (onLeave) {
onLeave(el, afterLeave)
onLeave(el, done)
if (onLeave.length <= 1) {
done()
}
} else {
afterLeave()
done()
}
}
}