From b31ea4154f89c701ad1d00454b22b965a47c73cd Mon Sep 17 00:00:00 2001 From: evan-lc <1411197585@qq.com> Date: Sun, 9 Nov 2025 11:33:30 +0800 Subject: [PATCH 1/2] fix(getColumnsKey): allow empty string && getColumnsKey in BodyGrid --- src/VirtualTable/BodyGrid.tsx | 5 ++++- src/utils/valueUtil.tsx | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/VirtualTable/BodyGrid.tsx b/src/VirtualTable/BodyGrid.tsx index e157281ba..6257153aa 100644 --- a/src/VirtualTable/BodyGrid.tsx +++ b/src/VirtualTable/BodyGrid.tsx @@ -6,6 +6,7 @@ import useFlattenRecords, { type FlattenData } from '../hooks/useFlattenRecords' import type { ColumnType, OnCustomizeScroll, ScrollConfig } from '../interface'; import BodyLine from './BodyLine'; import { GridContext, StaticContext } from './context'; +import { getColumnsKey } from '../utils/valueUtil'; export interface GridProps { data: RecordType[]; @@ -58,7 +59,9 @@ const Grid = React.forwardRef((props, ref) => { // ========================== Column ========================== const columnsWidth = React.useMemo<[key: React.Key, width: number, total: number][]>(() => { let total = 0; - return flattenColumns.map(({ width, minWidth, key }) => { + const columnKeys = getColumnsKey(flattenColumns); + return flattenColumns.map(({ width, minWidth }, index) => { + const key = columnKeys[index]; const finalWidth = Math.max((width as number) || 0, (minWidth as number) || 0); total += finalWidth; return [key, finalWidth, total]; diff --git a/src/utils/valueUtil.tsx b/src/utils/valueUtil.tsx index 56f6fef4f..06ef2b651 100644 --- a/src/utils/valueUtil.tsx +++ b/src/utils/valueUtil.tsx @@ -21,7 +21,7 @@ export function getColumnsKey(columns: readonly GetColumnKeyColumn[] columns.forEach(column => { const { key, dataIndex } = column || {}; - let mergedKey = key || toArray(dataIndex).join('-') || INTERNAL_KEY_PREFIX; + let mergedKey = key ?? toArray(dataIndex).join('-') ?? INTERNAL_KEY_PREFIX; while (keys[mergedKey as string]) { mergedKey = `${mergedKey}_next`; } From 309e3cb0988008ce7351405fa787e3d5fbea42ac Mon Sep 17 00:00:00 2001 From: evanlc <1411197585@qq.com> Date: Sun, 9 Nov 2025 11:45:52 +0800 Subject: [PATCH 2/2] Update src/utils/valueUtil.tsx Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> --- src/utils/valueUtil.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/utils/valueUtil.tsx b/src/utils/valueUtil.tsx index 06ef2b651..0b196dea0 100644 --- a/src/utils/valueUtil.tsx +++ b/src/utils/valueUtil.tsx @@ -21,7 +21,7 @@ export function getColumnsKey(columns: readonly GetColumnKeyColumn[] columns.forEach(column => { const { key, dataIndex } = column || {}; - let mergedKey = key ?? toArray(dataIndex).join('-') ?? INTERNAL_KEY_PREFIX; + let mergedKey = key ?? (toArray(dataIndex).join('-') || INTERNAL_KEY_PREFIX); while (keys[mergedKey as string]) { mergedKey = `${mergedKey}_next`; }