From aa5d667591c693cacabf97e365af5c64c86f3f90 Mon Sep 17 00:00:00 2001 From: ErfanBagheri404 Date: Sat, 15 Aug 2026 14:00:34 +0330 Subject: [PATCH] fix(vue-table): return null for empty string renders to avoid hydration mismatch Fixes #6077 flexRender returns '' for columns whose cell/header renders an empty string. During SSR the server emits no text node, but Vue's hydration expects one, causing a mismatch error. Treat the empty string like null/undefined and return null so server and client agree. --- packages/vue-table/src/FlexRender.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/packages/vue-table/src/FlexRender.ts b/packages/vue-table/src/FlexRender.ts index b257a2dd4a..d42dd48377 100644 --- a/packages/vue-table/src/FlexRender.ts +++ b/packages/vue-table/src/FlexRender.ts @@ -43,6 +43,13 @@ export function flexRender(render: any, props: any): any { return rendered } + // An empty string renders to nothing on the server but Vue still emits a + // text node, producing a hydration mismatch when the client renders the + // same empty cell. Return null so both sides agree on no output. + if (rendered === '') { + return null + } + if (typeof rendered === 'function' || typeof rendered === 'object') { return h(rendered, props) }