React antd的table表格之嵌套表格

最近做了几个pc端的后台管理需求,涉及了table中的嵌套表格,嵌套的子表格大体分为两种效果:

  • 效果1-----点击展开新的子表格,旧的子表格关闭
  • 效果2-----可同时展开多个子表格

效果1:嵌套表格,实现点击展开按钮,展开子表格请求接口数据,点击新的子表格收起原来的子表格效果

// 设置一个State用来储存展开的行,控制属性
const [expandedRowKeys,setExpandedRowKeys] = useState<any>([''])//配置展开属性
expandable={{①onExpand ,// 请求子表格后台数据②onExpandedRowsChange,// 展开的行变化时触发③expandedRowRender, // 子表格dom部分④expandedRowKeys,// 展开的行,控制属性State的变量}}
// ①获取后台接口子表格数据const onExpand = (expanded: any, record: any) => {*****发送请求函数********};// ②展开的行变化时触发const onExpandedRowsChange=(expandedRows: any)=>{expandRows(expandedRows)}
// ③子表格dom部分const expandedRowRender=()=>{return (<div>子表格dom内容部分</div>)
}
//④点击新的子表格收起原展开的子表格
const expandRows = (rows: any) => {// 点开是['',1]   ['',2]的数组 ,最后一个是我们当前展开的行,我们最后set一个['',当前展开行的下标]到expandedRowKeys就可以实现 ‘点击新的子表格收起原展开的子表格’const arrTemp = ['']setExpandedRowKeys(arrTemp.concat(rows[rows.length - 1]))
}

效果2:嵌套表格,可同时展开多个子表格,将各个子表格loading效果和接口返回数据根据唯一标识进行数据和loading的隔离

 // 嵌套表格的loading状态const [loadingObj, setLoadingObj] = useState<any>({});// 嵌套表格全部的数据源const [tableData, setTableData] = useState<any>({});//配置展开属性
expandable={{①onExpand ,// 请求子表格后台数据③expandedRowRender, // 子表格dom部分}}// 请求后台数据const queryExpandedData = async (record: any, key: any) => {try {const table = { ...tableData };const loading = { ...loadingObj };const result: any = await ***子表格的请求***({});const data: any = result?.dataArr;table[key] = data;loading[key] = false;setTableData(table);setLoadingObj(loading);} catch (error) {console.log(error);}};// 子表格展开的点击函数
const onExpand=(expanded: any, record: any)=>{const key = record?.id;// 之前展开过if (tableData[key]?.length) return;// 第一次展开const loading = { ...loadingObj };loading[key] = true;setLoadingObj(loading);queryExpandedData(record, key);
}
// 子表格dom部分
const expandedRowRender=()=>{return (<div>子表格dom内容部分</div>)
}

React antd的table表格之嵌套表格相关推荐

  1. phpexcel_cell 获取表格样式_Java 操作Word表格——创建嵌套表格、添加/复制表格行或列、设置表格是否禁止跨页断行...

    精品推荐 国内稀缺优秀Java全栈课程-Vue+SpringBoot通讯录系统全新发布! Docker快速手上视频教程(无废话版)[免费] 作者:E-iceblue https://www.cnblo ...

  2. java操作跨页的word cell_Java 操作Word表格——创建嵌套表格、添加/复制表格行或列、设置表格是否禁止跨页断行...

    本文将对如何在Java程序中操作Word表格作进一步介绍.操作要点包括 如何在Word中创建嵌套表格. 对已有表格添加行或者列 复制已有表格中的指定行或者列 对跨页的表格可设置是否禁止跨页断行 创建表 ...

  3. Java 操作Word表格——创建嵌套表格、添加/复制表格行或列、设置表格是否禁止跨页断行

    本文将对如何在Java程序中操作Word表格作进一步介绍.操作要点包括 如何在Word中创建嵌套表格. 对已有表格添加行或者列 复制已有表格中的指定行或者列 对跨页的表格可设置是否禁止跨页断行 创建表 ...

  4. Java 操作Word表格——创建嵌套表格、添加/复制表格行或列、设置表格是否禁止跨页断行...

    点击上方 "程序员小乐"关注公众号, 星标或置顶一起成长 每天凌晨00点00分, 第一时间与你相约 每日英文 Destiny decides who enters your lif ...

  5. phpWord使用模板填充数据:包含表格及嵌套表格(多个表格/循环表格)

    参考文档 模板处理 基础使用 安装过程省略,首先加载模板: $templateProcessor = new TemplateProcessor(ROOT_PATH . 'uploads/templa ...

  6. antd表格组件嵌套表格 expandedRowRender 为什么出现多余空白列?

    代码是这么写的 expandedRowRender = (record, index) => {let children = JSON.parse(JSON.stringify(record.c ...

  7. react - antd (Table 与 Cascader 平级数据转树形实操)

    如果你刚开始学习前端或者 React,将 UI 框架作为你的第一步可能不是最好的主意. (这是引用antd官网的一句话),虽然说一开始用antd作为UI框架对新手来说并不是很好,但是如果工作需要呢,那 ...

  8. react antd 更改table 表头和表行样式

    我这里以组件的形式来提供code 使实例正确运行至少需要以下知识: 1 创建react项目(本实例基于react项目) 2 知道如何导入和调用组件 样式效果如下图: 实现方法 目录结构: YMColl ...

  9. react+antd 自定义table单元格属性

    先把antd table的基本样式引入,在columns中需要设置单元格属性的列描述数据对象中加入onCell属性,引入css样式 import styles from './xxx.less'; c ...

  10. react antd组件table跨行跨列

    给官网上的看不懂的同行写的,毕竟我一开始也看不懂(现在也没看懂) 逻辑是在列的设置上写,通过条件判断跨行还是不跨行以及跨多少行 const columns =[title: '姓名',dataInde ...

最新文章

  1. 编程问题之:x=xamp;(x-1)
  2. sqlite3里类似top的用法
  3. 远程更新FPGA配置的热启动地址(WBSTAR)的格式?
  4. usg6620 查看端口流量_WhatRoute for Mac(互联网流量诊断查询工具)
  5. [译]提案:在Go语言中增加对持久化内存的支持
  6. UVa 10026 - Shoemaker's Problem
  7. C# dapper 使用事务
  8. QT5基础教程(介绍,下载,安装,第一个QT程序)
  9. cad填充密度怎么调整_CAD填充图案时无法正常填充看似封闭的区域怎么解决?
  10. 前端开发基础-JavaScript
  11. turn.js 异步请求图片资源,实现电子书翻页效果 报错 ”The page 1 dose not exist”
  12. 八字易经算法之用JAVA实现完整排盘系统_八字易經演算法之用JAVA實現完整排盤系統 | 學步園...
  13. 四种做动态数据可视化的方法
  14. java创建多个线程 延时1秒_Java 多线程(三)优化任务执行
  15. RxJava-Introduction
  16. CF1325C Ehab and Path-etic MEXs
  17. 手机上哪款闹钟提醒APP好
  18. 华南主板超频设置图解_实用至上,微星B550 TOMAHAWK主板开箱拆解+测试
  19. 基于PIC16F876A的摇摇棒
  20. lenovo L480 进入bios_ASUS主板刷BIOS详细步骤

热门文章

  1. 十三、VMware vSphere 6.7虚拟化云管理之13、VCSA6.7设置主机许可
  2. 50行Python代码制作一个计算器
  3. HYSPLIT 模型 传输轨迹 使用指南
  4. 制作自己的Maven镜像,上传Harbor镜像仓库
  5. 时域和频域和频谱的关系
  6. MFC 通用对话框之“浏览“对话框
  7. videojs中文文档
  8. 110KV降压变电所电气一次部分及防雷保护设计
  9. 【龙印】龙芯1c上双路16位AD芯片TM7705的linux驱动
  10. 佳缘男的计算机软件出差,交友我在世纪佳缘认识了一个男人,今年32岁,通信接近一个月,觉得 爱问知识人...