当前位置: 首页 > news >正文

React antd Table表格动态合并单元格

注意:

① 采用的是React antDsign 4.x版本 

② 需重新处理data数据

实现效果

代码实现

import React from 'react';
import { Table } from 'antd';const data = [{key: '0',name: '张三',age: 22,sex: '男',},{key: '1',name: '李四',age: 42,sex: '男',},{key: '2',name: '小丽',age: 22,sex: '女',},{key: '3',name: '小红',age: 31,sex: '女',},{key: '4',name: '赵大胆',age: 42,sex: '男',},{key: '5',name: '李建国',age: 62,sex: '男',},
];const columns = [{title: '姓名',dataIndex: 'name',key: 'name',align: 'center',},{title: '性别',dataIndex: 'sex',key: 'sex',align: 'center',render(_, row) {return {children: row.sex,props: {rowSpan: row.rowSpan,},};},},{title: '年龄',dataIndex: 'age',key: 'age',align: 'center',},
];//处理data数组
const createNewData = (data) => {return data.reduce((result, item) => {if (result.indexOf(item.sex) < 0) {result.push(item.sex);}return result;}, []).reduce((result, sex) => {const children = data.filter((item) => item.sex === sex);result = result.concat(children.map((item, index) => ({...item,rowSpan: index === 0 ? children.length : 0,})),);return result;}, []);
};const App = () => (<Tablecolumns={columns}dataSource={createNewData(data)}borderedsize="small"/>
);export default App;

注:本人前端小白 ,如有不对的地方还请多多指教

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 使用python请求接口方式(可进行并发测试)例子解析
  • C语言:编程世界的基石
  • JVM 方法区存放那些内容
  • vue将两个项目整合成一个
  • nginx-rewrite、if、浏览器分离、防盗链
  • PHP 全攻略:从环境搭建到实战项目的深度探索
  • 国产游戏技术能否引领全球?
  • 《算法竞赛进阶指南》0x26广搜变形
  • ROS实现简单避障
  • 如何利用「搭贝」进销存系统锁住库存
  • Code Llama: Open Foundation Models for Code论文阅读
  • STM32外部中断事件控制器-EXTI
  • 【AI学习】在魔塔社区玩Ollama:部署GLM4和CodeGeeX4
  • 切换JDK版本
  • CSS3页面布局-三栏-固定宽度布局
  • 【挥舞JS】JS实现继承,封装一个extends方法
  • Angular数据绑定机制
  • codis proxy处理流程
  • Druid 在有赞的实践
  • EOS是什么
  • gops —— Go 程序诊断分析工具
  • iOS编译提示和导航提示
  • js
  • Linux快速配置 VIM 实现语法高亮 补全 缩进等功能
  • python 学习笔记 - Queue Pipes,进程间通讯
  • Quartz初级教程
  • SpringCloud集成分布式事务LCN (一)
  • Sublime text 3 3103 注册码
  • Vue ES6 Jade Scss Webpack Gulp
  • Vue2.x学习三:事件处理生命周期钩子
  • Zepto.js源码学习之二
  • 持续集成与持续部署宝典Part 2:创建持续集成流水线
  • 基于Volley网络库实现加载多种网络图片(包括GIF动态图片、圆形图片、普通图片)...
  • 使用docker-compose进行多节点部署
  • 通过获取异步加载JS文件进度实现一个canvas环形loading图
  • 我的面试准备过程--容器(更新中)
  • 协程
  • 在electron中实现跨域请求,无需更改服务器端设置
  • 掌握面试——弹出框的实现(一道题中包含布局/js设计模式)
  • 交换综合实验一
  • 树莓派用上kodexplorer也能玩成私有网盘
  • (16)UiBot:智能化软件机器人(以头歌抓取课程数据为例)
  • (6)【Python/机器学习/深度学习】Machine-Learning模型与算法应用—使用Adaboost建模及工作环境下的数据分析整理
  • (vue)el-cascader级联选择器按勾选的顺序传值,摆脱层级约束
  • (附源码)springboot工单管理系统 毕业设计 964158
  • (附源码)ssm户外用品商城 毕业设计 112346
  • (附源码)计算机毕业设计高校学生选课系统
  • (六)什么是Vite——热更新时vite、webpack做了什么
  • (四)软件性能测试
  • (推荐)叮当——中文语音对话机器人
  • (五十)第 7 章 图(有向图的十字链表存储)
  • (学习日记)2024.04.04:UCOSIII第三十二节:计数信号量实验
  • (一)appium-desktop定位元素原理
  • .bat批处理(一):@echo off
  • .gitignore