setTransitionHooks(innerChild, enterHooks)
}
- const oldChild = instance.subTree
- const oldInnerChild = oldChild && getInnerChild(oldChild)
+ let oldInnerChild = instance.subTree && getInnerChild(instance.subTree)
// handle mode
if (
!isSameVNodeType(innerChild, oldInnerChild) &&
recursiveGetSubtree(instance).type !== Comment
) {
- const leavingHooks = resolveTransitionHooks(
+ let leavingHooks = resolveTransitionHooks(
oldInnerChild,
rawProps,
state,
instance.update()
}
delete leavingHooks.afterLeave
+ oldInnerChild = undefined
}
return emptyPlaceholder(child)
} else if (mode === 'in-out' && innerChild.type !== Comment) {
) => {
const leavingVNodesCache = getLeavingNodesForType(
state,
- oldInnerChild,
+ oldInnerChild!,
)
- leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild
+ leavingVNodesCache[String(oldInnerChild!.key)] = oldInnerChild!
// early removal callback
el[leaveCbKey] = () => {
earlyRemove()
el[leaveCbKey] = undefined
delete enterHooks.delayedLeave
+ oldInnerChild = undefined
+ }
+ enterHooks.delayedLeave = () => {
+ delayedLeave()
+ delete enterHooks.delayedLeave
+ oldInnerChild = undefined
}
- enterHooks.delayedLeave = delayedLeave
}
+ } else {
+ oldInnerChild = undefined
}
+ } else if (oldInnerChild) {
+ oldInnerChild = undefined
}
return child