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;
				}
			}


效果图
react合并单元格_第1张图片

你可能感兴趣的:(react)