MaterialReactTable如何获取行选中的数据?
时间: 2024-03-30 16:37:03 浏览: 12
MaterialReactTable 是一个 React UI 组件库,用于渲染数据表格。要获取行选中的数据,你可以使用 `onSelectionModelChange` 属性来监听选中行的变化,然后在回调函数中获取选中的行数据。
具体的代码示例如下:
```
import * as React from 'react';
import { DataGrid } from '@material-ui/data-grid';
const columns = [
{ field: 'id', headerName: 'ID', width: 70 },
{ field: 'firstName', headerName: 'First name', width: 130 },
{ field: 'lastName', headerName: 'Last name', width: 130 },
{ field: 'age', headerName: 'Age', type: 'number', width: 90 },
];
const rows = [
{ id: 1, lastName: 'Snow', firstName: 'Jon', age: 35 },
{ id: 2, lastName: 'Lannister', firstName: 'Cersei', age: 42 },
{ id: 3, lastName: 'Lannister', firstName: 'Jaime', age: 45 },
{ id: 4, lastName: 'Stark', firstName: 'Arya', age: 16 },
{ id: 5, lastName: 'Targaryen', firstName: 'Daenerys', age: null },
{ id: 6, lastName: 'Melisandre', firstName: null, age: 150 },
{ id: 7, lastName: 'Clifford', firstName: 'Ferrara', age: 44 },
{ id: 8, lastName: 'Frances', firstName: 'Rossini', age: 36 },
{ id: 9, lastName: 'Roxie', firstName: 'Harvey', age: 65 },
];
export default function DataTable() {
const [selectionModel, setSelectionModel] = React.useState([]);
const handleSelectionModelChange = (newSelectionModel) => {
setSelectionModel(newSelectionModel);
console.log(newSelectionModel); // 输出选中行的 id
};
return (
<div style={{ height: 400, width: '100%' }}>
<DataGrid
rows={rows}
columns={columns}
checkboxSelection
selectionModel={selectionModel}
onSelectionModelChange={handleSelectionModelChange}
/>
</div>
);
}
```
在上面的示例中,我们定义了一个 `DataGrid` 组件,设置 `checkboxSelection` 属性为 `true`,这样就可以在每一行显示一个复选框。然后,在 `onSelectionModelChange` 回调函数中,我们通过 `setSelectionModel` 更新选中的行数据,并通过 `console.log` 输出选中行的 `id`。