微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

访问单击材料表中的编辑图标

如何解决访问单击材料表中的编辑图标

enter image description here

我在 Reactjs 中使用 Material Table 来显示表格数据。在这里,当我单击编辑选项/图标时,我被困在我想更改状态的部分。我不想更改 编辑 按钮的 onClick 功能,但我只想访问编辑图标。有什么办法可以实现吗?

注意:我只需要在它变成“确定”和“取消”按钮之前单击编辑(笔)图标时才需要它。

enter image description here

解决方法

如果此 html 模板是您编写的,那么您可以将图标包装在某个父元素中并在父元素上添加点击事件。

,

首先,您必须删除默认的编辑按钮。然后在 Buttonaction 道具中使用 tableRef。现在,您所要做的就是将编辑代码放入 onClick 事件中,如下所示:

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _objectSpread2 = _interopRequireDefault(
  require("@babel/runtime/helpers/objectSpread")
);
...

export default function MaterialTableDemo() {
  const tableRef = useRef(null);
  ...
  return (
    <MaterialTable
      ...
      tableRef={tableRef}
      actions={[
        {
          onClick: (event,rowData) => {
            console.log("Clicked",rowData);
            tableRef.current.dataManager.changeRowEditing(rowData,"update");

            tableRef.current.setState(
              (0,_objectSpread2["default"])(
                {},tableRef.current.dataManager.getRenderState(),{
                  showAddRow: false,}
              )
            );
          },},]}
      ...
    />
  )
}

这部分是material-table在其代码中使用的要求:

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _objectSpread2 = _interopRequireDefault(
  require("@babel/runtime/helpers/objectSpread")
);

此外,这是您触发编辑操作所需的代码:

tableRef.current.dataManager.changeRowEditing(rowData,"update");
tableRef.current.setState(
  (0,_objectSpread2["default"])(
    {},{
      showAddRow: false,}
  )

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。