From 38bc248a4ced56a5c3b5b4a563c2a98db2b7e5ea Mon Sep 17 00:00:00 2001 From: ylcjwq <96716634+ylcjwq@users.noreply.github.com> Date: Wed, 13 Aug 2025 21:02:11 +0800 Subject: [PATCH] Revert "fix(components): [table] render default slot only when it returns valid vnodes (#21651)" (#21728) * revert: revert fix table slot rendering (#21651) * Revert "fix(components): [table] render default slot only when it returns valid vnodes (#21651)" This reverts commit 6bf6313f356ea96936712f0b67d806ff6ec55b32. --------- Co-authored-by: dopamine --- .../table/src/table-column/render-helper.ts | 12 +++++------- packages/utils/vue/vnode.ts | 18 ------------------ 2 files changed, 5 insertions(+), 25 deletions(-) diff --git a/packages/components/table/src/table-column/render-helper.ts b/packages/components/table/src/table-column/render-helper.ts index 894fa23c64..cdb942553d 100644 --- a/packages/components/table/src/table-column/render-helper.ts +++ b/packages/components/table/src/table-column/render-helper.ts @@ -1,4 +1,5 @@ import { + Comment, computed, getCurrentInstance, h, @@ -7,12 +8,7 @@ import { unref, watchEffect, } from 'vue' -import { - debugWarn, - ensureValidVNode, - isArray, - isUndefined, -} from '@element-plus/utils' +import { debugWarn, isArray, isUndefined } from '@element-plus/utils' import { useNamespace } from '@element-plus/hooks' import { cellForced, @@ -164,7 +160,9 @@ function useRender( let children: VNode | VNode[] | null = null if (slots.default) { const vnodes = slots.default(data) - children = ensureValidVNode(vnodes) ? vnodes : originRenderCell(data) + children = vnodes.some((v) => v.type !== Comment) + ? vnodes + : originRenderCell(data) } else { children = originRenderCell(data) } diff --git a/packages/utils/vue/vnode.ts b/packages/utils/vue/vnode.ts index 8895a9bdec..c478f79405 100644 --- a/packages/utils/vue/vnode.ts +++ b/packages/utils/vue/vnode.ts @@ -170,21 +170,3 @@ export const flattedChildren = ( }) return result } - -// Copyied from https://github.com/vuejs/core/blob/c875019d49b4c36a88d929ccadc31ad414747c7b/packages/runtime-core/src/helpers/renderSlot.ts#L102 -export function ensureValidVNode( - vnodes: VNodeArrayChildren -): VNodeArrayChildren | null { - return vnodes.some((child) => { - if (!isVNode(child)) return true - if (child.type === Comment) return false - if ( - child.type === Fragment && - !ensureValidVNode(child.children as VNodeArrayChildren) - ) - return false - return true - }) - ? vnodes - : null -}