reactjs - 在 React Material-UI DataGrid 中获取复选框选择上的行项目

标签 reactjs datagrid material-ui react-tsx

我从 API 获取数据并使用 React Material-UI Data Grid 显示它。
我启用了复选框选择,我想获取所选行的特定单元格项目并将它们保存在列表中。
例如在下图中,如果我点击第一行的复选框,我想在列表中添加“当前位置”,然后如果我点击第二行,我想要第二行的当前位置添加到现有的列表。
enter image description here
下面是我当前的代码

<DataGrid
   rows={rows}
   columns={columns}
   checkboxSelection     
   onSelectionModelChange={itm => console.log(itm)}
/>
但我得到这样的输出
enter image description here
我对 React 非常陌生,我不确定如何获取所选行的当前位置值并将其添加到列表中。

最佳答案

您只能访问 onSelectionModelChange 中的行 ID打回来。如果要获取整行对象,使用原来的rows数据并根据选定的 id 过滤其他数据。
注:DataGrid将每个行 ID 存储在内部字符串中,因此如果原始行数据中的 ID 是数字,您可能希望将其转换 toString()在比较之前。

rows={rows}
onSelectionModelChange={(ids) => {
  const selectedIDs = new Set(ids);
  const selectedRowData = rows.filter((row) =>
    selectedIDs.has(row.id.toString());
  );
  console.log(selectedRowData);
}}
现场演示
Edit 66424752/get-row-item-on-checkbox-selection-in-react-material-ui-data-grid

关于reactjs - 在 React Material-UI DataGrid 中获取复选框选择上的行项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66424752/

相关文章:

javascript - 如何在出现语法错误的循环中写入 "if"条件并更新列表中的一行

reactjs - ReduxForm 装饰器,弹出 create-react-app 后出现无类分配错误

c# - 使用 MVVM 在 WPF DataGrid 中自定义排序

c# - 如何在 C# 中应用多个 .Tag 属性?

javascript - 如何在 Material UI 中设置 Material 卡的最小高度?

javascript - 无法绘制 MenuIcon 组件

javascript - 如何使用 JSX 从 .map() 将 .push() 选择的 ids 到数组(本地状态)

javascript - 当我将 React-router Redirect 分离到另一个组件中时,它似乎不起作用

wpf - DataGrid 未绑定(bind)(XAML + ViewModel + ObservableCollection)

reactjs - react Material -ui 选择不起作用