在 Ant Design 表格中,可以使用 expandedRowRender
属性来定义展开行的内容。要将行是否被选中的状态传递给 expandRowRender
,可以使用 rowSelection
属性结合 getCheckboxProps
方法来实现。
以下是一个示例代码,演示了如何将行是否被选中的状态传递给 expandRowRender
:
import React, { useState } from 'react';
import { Table } from 'antd';
const dataSource = [
{
key: '1',
name: 'John Doe',
age: 28,
},
{
key: '2',
name: 'Jane Smith',
age: 32,
},
];
const App = () => {
const [selectedRowKeys, setSelectedRowKeys] = useState([]);
const onSelectChange = (selectedRowKeys) => {
setSelectedRowKeys(selectedRowKeys);
};
const rowSelection = {
selectedRowKeys,
onChange: onSelectChange,
getCheckboxProps: (record) => ({
checked: selectedRowKeys.includes(record.key),
}),
};
const expandRowRender = (record) => {
return {record.name}'s details;
};
return (
);
};
export default App;
在上面的示例中,我们使用 useState
来定义一个 selectedRowKeys
状态,用于保存选中行的 keys。然后,我们定义了 onSelectChange
方法来在选择行发生改变时更新 selectedRowKeys
状态。
接下来,我们创建了一个 rowSelection
对象,其中包含 selectedRowKeys
、onChange
和 getCheckboxProps
属性。getCheckboxProps
方法会根据行的 record
参数返回一个对象,其中 checked
属性表示该行是否被选中。
最后,我们将 rowSelection
对象传递给表格的 rowSelection
属性,并将 expandable
属性的 expandedRowRender
设置为我们定义的 expandRowRender
方法。
这样,当选择行发生改变时,selectedRowKeys
状态会更新,并且被选中的行会自动传递给 expandRowRender
方法。