在antd表格中,可以通过设置expandable
属性来实现为下级数据设置主展开行。具体步骤如下:
columns
属性中,定义一个名为expandable
的对象,用于配置展开行的相关属性。其中,expandable
对象包含以下属性:expandedRowRender
:用于定义展开行的内容,可以是一个函数或一个React组件。该函数接收当前行的数据作为参数,并返回展开行的内容。rowExpandable
:用于定义是否可展开某一行的函数。该函数接收当前行的数据作为参数,并返回一个布尔值,表示该行是否可展开。expandRowByClick
:一个布尔值,表示是否通过点击行来展开/收起下级数据,默认为false
。expandIconColumnIndex
:一个数字,表示展开图标所在的列索引,默认为0
。expandIcon
:用于自定义展开图标的函数或React组件。该函数接收一个对象作为参数,包含expanded
属性表示当前行是否展开,onExpand
方法用于切换展开状态。该函数需要返回一个React节点作为展开图标。expandable
属性将上述配置应用到表格中。例如:import { Table } from 'antd';
const dataSource = [
{
key: '1',
name: 'John Brown',
age: 32,
address: 'New York No. 1 Lake Park',
children: [
{
key: '11',
name: 'Jim Green',
age: 42,
address: 'London No. 2 Lake Park',
},
{
key: '12',
name: 'Joe Black',
age: 32,
address: 'Sidney No. 3 Lake Park',
},
],
},
{
key: '2',
name: 'Jim Red',
age: 32,
address: 'London No. 2 Lake Park',
},
{
key: '3',
name: 'Joe Black',
age: 32,
address: 'Sidney No. 3 Lake Park',
},
];
const columns = [
{
title: 'Name',
dataIndex: 'name',
key: 'name',
},
{
title: 'Age',
dataIndex: 'age',
key: 'age',
},
{
title: 'Address',
dataIndex: 'address',
key: 'address',
},
];
const expandable = {
expandedRowRender: (record) => {
return (
<p style={{ margin: 0 }}>{record.name}'s children</p>
);
},
rowExpandable: (record) => {
return record.children && record.children.length > 0;
},
expandRowByClick: true,
expandIconColumnIndex: 0,
};
const App = () => {
return (
<Table
dataSource={dataSource}
columns={columns}
expandable={expandable}
/>
);
};
export default App;
在上述示例中,我们定义了一个包含父级和子级数据的dataSource
数组,并使用expandable
属性配置了展开行的相关属性。展开行的内容通过expandedRowRender
函数定义,判断某一行是否可展开的逻辑通过rowExpandable
函数实现。最后,将expandable
属性应用到Table
组件中。
这样,当用户点击父级行时,下级数据将展开显示在表格中。你可以根据实际需求自定义展开行的样式和内容。
腾讯云相关产品和产品介绍链接地址:
以上是腾讯云提供的一些相关产品,你可以根据具体需求选择适合的产品来支持你的云计算和开发工作。
领取专属 10元无门槛券
手把手带您无忧上云