From 64567a0157d973cec0c0c88112ac5b5f283db52a Mon Sep 17 00:00:00 2001 From: yoyo837 Date: Mon, 9 Mar 2020 18:25:32 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=BD=93=EF=BC=8C?= =?UTF-8?q?=E5=A4=96=E5=9B=B4=E5=AD=98=E5=9C=A8=E4=B8=80=E4=BA=9B=E9=80=BB?= =?UTF-8?q?=E8=BE=91=E6=93=8D=E4=BD=9Ccolumus=E6=97=B6=20=E5=A6=82reduce,?= =?UTF-8?q?=20=E4=BC=9A=E5=AF=B9=E6=97=A0=E6=95=88=E7=9A=84group=20?= =?UTF-8?q?=E8=AF=86=E5=88=AB=E4=B8=BAgroup?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Header/Header.tsx | 14 +++++++++++--- src/hooks/useColumns.tsx | 6 ++++-- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/Header/Header.tsx b/src/Header/Header.tsx index a3aa05bb1..d0e97dca9 100644 --- a/src/Header/Header.tsx +++ b/src/Header/Header.tsx @@ -1,5 +1,12 @@ import * as React from 'react'; -import { ColumnsType, CellType, StickyOffsets, ColumnType, GetComponentProps } from '../interface'; +import { + ColumnsType, + CellType, + StickyOffsets, + ColumnType, + GetComponentProps, + ColumnGroupType, +} from '../interface'; import HeaderRow from './HeaderRow'; import TableContext from '../context/TableContext'; @@ -28,8 +35,9 @@ function parseHeaderRows( let colSpan: number = 1; - if ('children' in column) { - colSpan = fillRowCells(column.children, currentColIndex, rowIndex + 1).reduce( + const columnAlias = column as ColumnGroupType; + if (columnAlias.children) { + colSpan = fillRowCells(columnAlias.children, currentColIndex, rowIndex + 1).reduce( (total, count) => total + count, 0, ); diff --git a/src/hooks/useColumns.tsx b/src/hooks/useColumns.tsx index 3d527c45b..fca0eaa61 100644 --- a/src/hooks/useColumns.tsx +++ b/src/hooks/useColumns.tsx @@ -9,6 +9,7 @@ import { GetRowKey, TriggerEventHandler, RenderExpandIcon, + ColumnGroupType, } from '../interface'; import { INTERNAL_COL_DEFINE } from '../utils/legacyUtil'; @@ -39,10 +40,11 @@ function flatColumns(columns: ColumnsType): ColumnType; + if (columnAlias.children) { return [ ...list, - ...flatColumns(column.children).map(subColum => ({ + ...flatColumns(columnAlias.children).map(subColum => ({ fixed: parsedFixed, ...subColum, })), From 020c1629928a6976a9636a5c872e12b76ebb5c52 Mon Sep 17 00:00:00 2001 From: yoyo837 Date: Mon, 9 Mar 2020 19:02:28 +0800 Subject: [PATCH 2/2] inline as --- src/Header/Header.tsx | 12 ++++++------ src/hooks/useColumns.tsx | 5 ++--- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/src/Header/Header.tsx b/src/Header/Header.tsx index d0e97dca9..7833051e9 100644 --- a/src/Header/Header.tsx +++ b/src/Header/Header.tsx @@ -35,12 +35,12 @@ function parseHeaderRows( let colSpan: number = 1; - const columnAlias = column as ColumnGroupType; - if (columnAlias.children) { - colSpan = fillRowCells(columnAlias.children, currentColIndex, rowIndex + 1).reduce( - (total, count) => total + count, - 0, - ); + if ((column as ColumnGroupType).children) { + colSpan = fillRowCells( + (column as ColumnGroupType).children, + currentColIndex, + rowIndex + 1, + ).reduce((total, count) => total + count, 0); cell.hasSubColumns = true; } diff --git a/src/hooks/useColumns.tsx b/src/hooks/useColumns.tsx index fca0eaa61..8b8f37e06 100644 --- a/src/hooks/useColumns.tsx +++ b/src/hooks/useColumns.tsx @@ -40,11 +40,10 @@ function flatColumns(columns: ColumnsType): ColumnType; - if (columnAlias.children) { + if ((column as ColumnGroupType).children) { return [ ...list, - ...flatColumns(columnAlias.children).map(subColum => ({ + ...flatColumns((column as ColumnGroupType).children).map(subColum => ({ fixed: parsedFixed, ...subColum, })),