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 -}