react合并单元格

举个例子,假如我们要合并2019年这一年的年份

/**
 * 合并单元格
 * @param text   当前的值
 * @param array   当前这一行的数据
 * @param columns   当前的key   也就是year
 * @returns {number}
 */
 // 定义一个变量,因为初始化的时候第一行是个空
let temp = {};
let tempNumber = {}
const mergeCells = (text, array, columns) => {
	let i = 0;
	// 如果这一行的值不等于   key   也就是123!=undifind
	if (text !== temp[columns]) {
	// 给这一列塞值   year= 2019
		temp[columns] = text;
		// 遍历这个数组   如果所有数据源的这一列的key 等于咱们的key  咱们就让它扩下一行
		array.forEach(item => {
			if (item[columns] === temp[columns]) {
				i += 1;
			}
		});
	}
	tempNumber[columns] = i
	return i;
}
/**
 * 获取 temp
 * @param  {[type]} columns [description]
 * @return {[type]}         [description]
 */
const getTemp = (columns) => {
	return tempNumber[columns]
}

/**
 * 清空 temp
 * @return {[type]} [description]
 */
const removeTemp = () => {
	temp = {}
	tempNumber= {}
}



	{
				title: '年份',
				width: '8%',
				dataIndex: 'year',
				maxRank: 10,
				render: text => {
					const obj = {
						children: text,
						props: {}
					};
					let dataList = this.state.dataSource;
					if(text) {
						obj.props.rowSpan = mergeCells(text, dataList, 'year')
					}
					return obj;
				}
			}


效果图
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值