From 5f3c04dbd87c8967b1d09fd1f2a944abba157fc3 Mon Sep 17 00:00:00 2001 From: RicardoErii <‘1974364190@qq.com’> Date: Wed, 17 Apr 2024 01:09:13 +0800 Subject: [PATCH] fix(runtime-core): getKeepAliveChild support slot --- packages/runtime-core/src/components/BaseTransition.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/runtime-core/src/components/BaseTransition.ts b/packages/runtime-core/src/components/BaseTransition.ts index e99fe0e496c..a290895656a 100644 --- a/packages/runtime-core/src/components/BaseTransition.ts +++ b/packages/runtime-core/src/components/BaseTransition.ts @@ -19,6 +19,7 @@ import { ErrorCodes, callWithAsyncErrorHandling } from '../errorHandling' import { PatchFlags, ShapeFlags, isArray } from '@vue/shared' import { onBeforeUnmount, onMounted } from '../apiLifecycle' import type { RendererElement } from '../renderer' +import type { RawSlots, Slot } from '../componentSlots' type Hook void> = T | T[] @@ -465,7 +466,8 @@ function getKeepAliveChild(vnode: VNode): VNode | undefined { __DEV__ && vnode.component ? vnode.component.subTree : vnode.children - ? ((vnode.children as VNodeArrayChildren)[0] as VNode) + ? ((vnode.children as VNodeArrayChildren)[0] as VNode) || + ((vnode.children as RawSlots).default as Slot)() : undefined : vnode }