Skip to content

Commit f9809b7

Browse files
afc163Linkodt
andauthored
fix: Table MeasureRow bug when children have refs (#1367)
* fix: Table MeasureRow bug when children have refs * refactor: remove unused ColumnType import in MeasureCell.tsx --------- Co-authored-by: keda <[email protected]>
1 parent 313b619 commit f9809b7

File tree

2 files changed

+8
-5
lines changed

2 files changed

+8
-5
lines changed

src/Body/MeasureCell.tsx

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,19 @@
11
import * as React from 'react';
22
import ResizeObserver from 'rc-resize-observer';
33
import useLayoutEffect from 'rc-util/lib/hooks/useLayoutEffect';
4-
import type { ColumnType } from '../interface';
54

65
export interface MeasureCellProps {
76
columnKey: React.Key;
87
onColumnResize: (key: React.Key, width: number) => void;
9-
column?: ColumnType<any>;
108
prefixCls: string;
9+
title?: React.ReactNode;
1110
}
1211

1312
export default function MeasureCell({
1413
columnKey,
1514
onColumnResize,
16-
column,
1715
prefixCls,
16+
title,
1817
}: MeasureCellProps) {
1918
const cellRef = React.useRef<HTMLTableCellElement>();
2019

@@ -27,7 +26,7 @@ export default function MeasureCell({
2726
return (
2827
<ResizeObserver data={columnKey}>
2928
<th ref={cellRef} className={`${prefixCls}-measure-cell`}>
30-
<div className={`${prefixCls}-measure-cell-content`}>{column?.title || '\xa0'}</div>
29+
<div className={`${prefixCls}-measure-cell-content`}>{title || '\xa0'}</div>
3130
</th>
3231
</ResizeObserver>
3332
);

src/Body/MeasureRow.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,13 +35,17 @@ export default function MeasureRow({
3535
>
3636
{columnsKey.map(columnKey => {
3737
const column = columns.find(col => col.key === columnKey);
38+
const rawTitle = column?.title;
39+
const titleForMeasure = React.isValidElement<React.RefAttributes<any>>(rawTitle)
40+
? React.cloneElement(rawTitle, { ref: null })
41+
: rawTitle;
3842
return (
3943
<MeasureCell
4044
prefixCls={prefixCls}
4145
key={columnKey}
4246
columnKey={columnKey}
4347
onColumnResize={onColumnResize}
44-
column={column}
48+
title={titleForMeasure}
4549
/>
4650
);
4751
})}

0 commit comments

Comments
 (0)