开发各种功能具体实现

这篇博客详细介绍了如何使用React.js实现表格中点击加号展开子菜单的功能。内容包括两种实现方式:一是直接返回所有数据进行 dataSource 的遍历拼接;二是首次返回第一层数据,后续通过点击请求获取并展示第二层数据。
摘要由CSDN通过智能技术生成

本例为各种功能的具体实现

  • (1)实现table里面的那个,点击左边的加号,展开子菜单。遍历拼接dataSource。这个是所有数据直接返回
    • 这里面用了两个递归。具体思路就是:有一个存放所有数据的数组dataArr;数组里面的数据如果插入到了dataSource里面,就把这一条从dataArr里面删除,直到dataArr为空,就遍历完了
this.renderDataSource(dataArr); // dataArr为后台返回的数据
    renderDataSource(dataArr: any) { // 用后台返回回来的数组来构建table的dataSource,数据里面的key,就是task_id
        let dataSource = [], // dataSource就是已经构建了的节点数据
            spliceDataIndex = []; // 在数据数组里面找到的数据的index
        // 下面是渲染第一层的数据,先把p_task_id为0的数据渲染出来,然后再把后面的慢慢加上去
        dataArr.forEach((value, index, arr) => {
            let { task_id, p_task_id, task_name, task_type, task_sort, task_status } = value,
                key = value.task_id;
            if (p_task_id === 0) {
                dataSource.push({ key, task_id, p_task_id, task_name, task_type, task_sort, task_status });
                spliceDataIndex.push(index);
            }
        });
        // 由于spliceDataIndex数组的index是从小到大的,所以如果从小到大删除dataArr中的项,那么就会乱;所以就转一个方向,从大到小来删
        spliceDataIndex.reverse().forEach((value,index,arr) => {
            dataArr.splice(value,1);
        });
        
        this.renderC
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值