fix(transition-group): should collect raw children with Fragment (#1046)
fix #1045
This commit is contained in:
parent
ba240eb497
commit
8ed3455251
@ -101,12 +101,7 @@ const TransitionGroupImpl = {
|
|||||||
const cssTransitionProps = resolveTransitionProps(rawProps)
|
const cssTransitionProps = resolveTransitionProps(rawProps)
|
||||||
const tag = rawProps.tag || Fragment
|
const tag = rawProps.tag || Fragment
|
||||||
prevChildren = children
|
prevChildren = children
|
||||||
children = slots.default ? slots.default() : []
|
children = getTransitionRawChildren(slots.default ? slots.default() : [])
|
||||||
|
|
||||||
// handle fragment children case, e.g. v-for
|
|
||||||
if (children.length === 1 && children[0].type === Fragment) {
|
|
||||||
children = children[0].children as VNode[]
|
|
||||||
}
|
|
||||||
|
|
||||||
for (let i = 0; i < children.length; i++) {
|
for (let i = 0; i < children.length; i++) {
|
||||||
const child = children[i]
|
const child = children[i]
|
||||||
@ -136,6 +131,20 @@ const TransitionGroupImpl = {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getTransitionRawChildren(children: VNode[]): VNode[] {
|
||||||
|
let ret: VNode[] = []
|
||||||
|
for (let i = 0; i < children.length; i++) {
|
||||||
|
const child = children[i]
|
||||||
|
// handle fragment children case, e.g. v-for
|
||||||
|
if (child.type === Fragment) {
|
||||||
|
ret = ret.concat(getTransitionRawChildren(child.children as VNode[]))
|
||||||
|
} else {
|
||||||
|
ret.push(child)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ret
|
||||||
|
}
|
||||||
|
|
||||||
// remove mode props as TransitionGroup doesn't support it
|
// remove mode props as TransitionGroup doesn't support it
|
||||||
delete TransitionGroupImpl.props.mode
|
delete TransitionGroupImpl.props.mode
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user