You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过代码清除MUI DataGrid中checkbox的选中状态?

问题原因

你当前为DataGrid开启了受控选择模式,选中状态完全由你通过state管理的selectionModel变量控制,直接调用DataGrid的内置方法DataGrid.UnselectAllCells()操作的是组件内部的非受控状态,和你绑定的外部状态不同步,所以不会生效。

解决方法

删除条目完成后,直接调用setSelectionModel把选中状态重置为空即可,不需要调用组件内置的取消选中方法。

修改后的删除按钮点击代码如下:

onClick={() => {
  const selectedIDs = new Set(selectionModel);
  librosData.filter((x) => selectedIDs.has(x.id)).map( x => {
    // ... 原有删除并更新到firebase的代码(保持不变)
  })
  // 新增下面这行代码重置选中状态
  setSelectionModel([]);
}}

可选优化

如果你不需要清空全部选中状态,只需要移除已删除条目的选中记录,可以替换为以下代码,避免误取消其他未删除条目的选中状态:

setSelectionModel(prev => prev.filter(id => !selectedIDs.has(id)))

内容的提问来源于stack exchange,提问作者React Enjoyer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 10:24:02