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

MUI X Data Grid单元格按钮需两次点击激活的解决方法咨询

解决MUI X Data Grid中按钮需两次点击触发的问题

解决方案1:阻止按钮点击事件冒泡

修改按钮的onClick事件,添加e.stopPropagation(),避免事件被单元格的选中逻辑拦截,让按钮点击直接触发:

const renderTools = (params) =>
  <Tooltip title="Delete" placement="top" arrow>
    <IconButton onClick={(e) => {
      e.stopPropagation(); // 阻止事件向上冒泡到单元格
      confirmDelete(params.value);
    }}>
      <Iconify icon="solar:trash-bin-trash-bold"/>
    </IconButton>
  </Tooltip>

解决方案2:禁用列的点击事件冒泡

在tools列的配置中添加disableClickEventBubbling: true,让整个单元格的点击事件不触发DataGrid的默认选中逻辑:

const columns = [
  {field: 'user', renderCell: renderUser, headerName: '', width: 550},
  {
    field: "tools", 
    renderCell: renderTools, 
    headerName: '', 
    width: 100, 
    align: "right",
    disableClickEventBubbling: true
  }
]

为什么disableRowSelectionOnClick没用?

disableRowSelectionOnClick是控制点击行时是否触发行选中的属性,而你遇到的问题是单元格本身会拦截点击事件来处理单元格选中,所以这个属性无法解决当前问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 03:27:53