antd Table 自适应滚动

时间:2025-01-20 20:13:55

antd Table 自适应滚动

问题:

antd的Table想要表头固定内容部分滚动的话必须给scroll设置固定值
如:

<Table columns={columns} dataSource={data} scroll={{ x: 1500, y: 300 }} />

需清楚地指明300or calc(100vh - 30px),而我需要Table高度自适应父div的高度
即父元素div的高度初始化时是不定的,Table超出该div的高度时,内部自动发生滚动

解决:

const [scrollY, setScrollY] = useState('');

 useEffect(() => {
  const Y = document.getElementById('table')?.clientHeight;
  if (Y) setScrollY(`${Y - 32}px`); // 32为表头的高,应用时减去自己表格的表头高
}, []);
  
<div id="table">
  <Table columns={columns} dataSource={data} scroll={{ y: scrollY }} />
<div>