govs Asked: 2024-05-27 11:29:57 +0800 CST2024-05-27 11:29:57 +0800 CST 2024-05-27 11:29:57 +0800 CST 如何在 MUI Data-grid-pro React 组件中单击时在行下显示自定义组件? 772 我正在尝试在 MUI DataGrid 中添加一个功能,如果您单击一行,它会展开更多信息, 这是我尝试过的演示 ,但我无法自定义它以具有行的完整宽度并获得更多信息。 期待类似下图的内容 material-ui 1 个回答 Voted Best Answer Ahmet Emre Kilinc 2024-05-27T13:34:50+08:002024-05-27T13:34:50+08:00 您需要getDetailPanelContent像这样使用 MUI datagrid 的 prop: // Custom component to display a message in place of the new row const MessageComponent = ({ message }) => ( <div style={{ padding: '10px', background: 'lightblue', border: '1px solid #ccc', }} > {message} </div> ); function DetailPanelContent({ row }) { return ( <Stack direction="row" alignItems="center"> <Box>slected-row-details</Box> <MessageComponent message={`Sected Row: ${row.firstName} ${row.lastName}, Age: ${row.age}`} /> </Stack> ); } export default function DataGridProDemo() { const [selectedRows, setSelectedRows] = React.useState([]); const handleRowClick = (params: any) => { setSelectedRows([params.row.id]); }; return ( <Box sx={{ height: 400, width: '100%' }}> <DataGridPro detailPanelExpandedRowIds={selectedRows} rows={rows} columns={columns} onRowClick={handleRowClick} pagination pageSize={5} disableSelectionOnClick getDetailPanelContent={({ row }) => <DetailPanelContent row={row} />} getDetailPanelHeight={() => 'auto'} sx={{ '& div[data-field="__detail_panel_toggle__"]': { display: 'none', }, }} /> </Box> ); } 您可以查看这个分叉的 StackBlitz,获取使用可扩展行的示例代码的实时工作示例。
您需要
getDetailPanelContent
像这样使用 MUI datagrid 的 prop:您可以查看这个分叉的 StackBlitz,获取使用可扩展行的示例代码的实时工作示例。