diff --git a/src/platforms/web/runtime/components/transition.js b/src/platforms/web/runtime/components/transition.js index 05d9fc62e..4430e17f0 100644 --- a/src/platforms/web/runtime/components/transition.js +++ b/src/platforms/web/runtime/components/transition.js @@ -54,6 +54,14 @@ function placeholder (h, rawChild) { : null } +function hasParentTransition (vnode) { + while ((vnode = vnode.parent)) { + if (vnode.data.transition) { + return true + } + } +} + export default { name: 'transition', props: transitionProps, @@ -95,7 +103,7 @@ export default { // if this is a component root node and the component's // parent container node also has transition, skip. - if (this.$vnode.parent && this.$vnode.parent.data.transition) { + if (hasParentTransition(this.$vnode)) { return rawChild }