fix(ssr): fix hydration error when transition contains comment children

fix #5351
This commit is contained in:
Evan You 2022-05-18 10:03:00 +08:00
parent aed10c5072
commit 3705b3b46a

View File

@ -35,7 +35,8 @@ import {
CREATE_VNODE, CREATE_VNODE,
CallExpression, CallExpression,
JSChildNode, JSChildNode,
RESOLVE_DYNAMIC_COMPONENT RESOLVE_DYNAMIC_COMPONENT,
TRANSITION
} from '@vue/compiler-dom' } from '@vue/compiler-dom'
import { SSR_RENDER_COMPONENT, SSR_RENDER_VNODE } from '../runtimeHelpers' import { SSR_RENDER_COMPONENT, SSR_RENDER_VNODE } from '../runtimeHelpers'
import { import {
@ -213,6 +214,10 @@ export function ssrProcessComponent(
if ((parent as WIPSlotEntry).type === WIP_SLOT) { if ((parent as WIPSlotEntry).type === WIP_SLOT) {
context.pushStringPart(``) context.pushStringPart(``)
} }
// #5351: filter out comment children inside transition
if (component === TRANSITION) {
node.children = node.children.filter(c => c.type !== NodeTypes.COMMENT)
}
processChildren(node, context) processChildren(node, context)
} }
} else { } else {