ant 树形表格的增删

最近用ant 的树表格做功能,实现了树表格的增删改查。

首先来看需求。树表格最多五层,可以编辑。渲染后台传过来的数据,也可以新增树,同级别,或者子级。

一开始因为新增的子或者同级别没有固定的ID,然后树表格要有一个唯一的rowkey。这里不能用index,父级的index从0开始增加,子级别也是。所以开始要构造一个唯一的key.

首先给每个元素增加key,类似'0','0_0','0_0_0'这种最多五级。注意这些参数不能单纯的想做index,因为后面删除功能可能会删掉‘0_0’,'0_1'就变成了子集第一个。

给所有元素添加唯一key

let loopArr = [
  {
    name: "lisi",
    age: 12,
    children: [
      {
        name: "wangwu",
        age: 13,
        children: [
          {
            age: 14,
            name: "zhaoliu",
          },
        ],
      },
    ],
  },
];
function addKey(loopArr, currentStep = 0, pId = 0) {
      const configs = [];
      console.log(loopArr, currentStep, pId, "元素循环次数");
      loopArr.forEach((item, index) => {
        if (!item.children || item.children.length < 1) {
          const t = {
            ...item,
            key: currentStep == 0 ? index.toString() : pId + "_" + index,
          };
          t.children = undefined;
          configs.push(t);
        }
        if (item.children && item.children.length > 0) {
          const parent = {
            ...item,
            key: currentStep == 0 ? index.toString() : pId + "_" + index,
          };
          parent.children = addKey(item.children, currentStep + 1, parent.key);
          configs.push(parent);
        }
      });
      console.log(configs, "构造数据");
      return configs;
    }

    addKey(loopArr, 0, 0);

最后成功实现给数组的所有元素(子元素添加了key) 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Ant Design是一个流行的ReactUI组件库,提供了丰富的UI组件和交互效果,非常适合用于开发企业级应用。而树形表格,顾名思义就是将表格以树的形式展示。Ant Design中提供了TreeTable组件,可以用来展现树形结构的表格数据。 在使用Ant Design的TreeTable组件时,首先需要引入相关的组件和样式。然后,通过数据源来渲染树形表格。数据源一般是一个包含层级关系的嵌套JSON对象数组。每个节点包含一个唯一的key属性,用来标识节点,以及其他需要展示的数据属性。 通过设置TreeTable组件的columns属性,可以定义每一列的标题、宽度、数据渲染函数等。另外,还可以通过设置expandedRowRender属性,来定义展开行的内容。 在渲染树形表格时,可以使用递归的方式来遍历数据源的每个节点,根据节点的层级关系来设置缩进和展开图标。当展开图标被点击时,可以动态加载子节点数据,并通过setState更新数据源,实现动态展开和收缩树形结构。 除了基本的展示功能之外,Ant Design的TreeTable组件还提供了一些其他的特性,例如拖拽排序、可编辑单元格、行编辑等,这些可以根据实际需求来选择使用。 总之,通过Ant Design的TreeTable组件,我们可以方便地展示树形结构的表格数据,提高用户对数据的理解和操作体验。这对于开发复杂的业务应用非常有帮助。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值