在 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 方法。