Antd-ProComponents中的EditableProTable无法新增子行的问题

项目场景:

业务中需要做一个树形结构的参数可编辑表格,即可无限制增添子级,调研了一下EditableProTable,记录一下问题
官网地址:https://procomponents.ant.design/components/editable-table
在这里插入图片描述

效果还是很不错的,点击添加一行数据时直接添加子级有点不太符合业务,应该是在每一行的操作栏进行添加子级


问题描述

当在行内进行添加子级时,可以调用actionRef.current?.addEditRecord(row)来新建子行,但是实际使用中发现并不能创建

export type ActionTypeText<T> = {
    deleteText?: React.ReactNode;
    cancelText?: React.ReactNode;
    saveText?: React.ReactNode;
    editorType?: 'Array' | 'Map';
    addEditRecord?: (row: T, options?: AddLineOptions) => boolean;
};

问题就出在row,官方的API我认为列举的不完整。看了下源码,发现里面有个option,在这里面设置父级节点的key值才能正确添加子行


解决方案:

const columns = [
    {
      title: '操作',
      dataIndex: 'option',
      valueType: 'option',
      width: '15%',
      render: (text, record, _, action) => {
        const opt = [
          <a
            key="add"
            onClick={() => {
              actionRef.current?.addEditRecord(
                {
                  id: (Math.random() * 1000000).toFixed(0),
                  level: Number(record.level) + 1,
                  parentId: record.id,
                },
                {
                  position: 'bottom',
                  parentKey: record.id,
                  recordKey: 'id',
                },
              );
            }}
          >
            添加下级
          </a>
        ];
        return opt;
      },
    },
  ];
  

上面是你需要新增的rowData,后面是新增的option,parentKey一定要和当前节点保持一致

最终效果:

在这里插入图片描述

参数JSON的预览展示

在这里插入图片描述

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿凡驴的小毛提

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值