diff --git a/packages/runtime-core/src/components/BaseTransition.ts b/packages/runtime-core/src/components/BaseTransition.ts index 27bfb5f523a..c8a94594371 100644 --- a/packages/runtime-core/src/components/BaseTransition.ts +++ b/packages/runtime-core/src/components/BaseTransition.ts @@ -164,7 +164,9 @@ const BaseTransitionImpl: ComponentOptions = { if ( __DEV__ && mode && - mode !== 'in-out' && mode !== 'out-in' && mode !== 'default' + mode !== 'in-out' && + mode !== 'out-in' && + mode !== 'default' ) { warn(`invalid mode: ${mode}`) } @@ -460,22 +462,28 @@ export function setTransitionHooks(vnode: VNode, hooks: TransitionHooks) { export function getTransitionRawChildren( children: VNode[], - keepComment: boolean = false + keepComment: boolean = false, + parentKey?: VNode['key'] ): VNode[] { let ret: VNode[] = [] let keyedFragmentCount = 0 for (let i = 0; i < children.length; i++) { - const child = children[i] + let child = children[i] + // #5360 inherit parent key in case of