如何从Material-UI的<DataGrid/>中通过ID提取指定行数据?
可以通过ID提取对应整行数据,两种常用方式如下:
1. 直接从原始数据源筛选
由于<DataGrid>的rows属性绑定的是data数组,你可以直接用数组的find方法根据ID匹配目标行:
// 提取id=1的行数据 const targetRow = data.find(row => row.id === 1);
如果要处理无匹配ID的情况,可补充判断逻辑:
const targetRow = data.find(row => row.id === 1); if (targetRow) { // 获取数据后的后续操作 console.log(targetRow); } else { console.log('未找到对应ID的行'); }
2. 在DataGrid交互事件中获取
如果是表格交互场景(比如点击行、操作列按钮),可通过事件参数直接拿到当前行数据。以你的actionColumn为例,配置时可以这样获取:
const actionColumn = [ { field: 'actions', headerName: '操作', renderCell: (params) => { // params.row 即为当前行的完整数据 const handleClick = () => { console.log('当前行数据:', params.row); // 需要匹配ID时,直接用params.row.id判断 if (params.row.id === 1) { // 执行对应逻辑 } }; return <button onClick={handleClick}>查看详情</button>; }, }, ];
内容的提问来源于stack exchange,提问作者Darkpsinight
相关产品推荐
相关产品推荐

