react: ant-design中关于table的合并与分页并存所产生的问题
- 功能
table 使用过程中,融合 table 表格的合并和分页 - 产生的问题
合并后的表格,在分页的时候,表格内容错行 - 错位图
··· 处理过程 ···
- 关于表格列的配置:
点击查看代码
columns = [
{title: '情况',
children:[
{
title: '名称',
dataIndex: 'name',
key: 'name',
render(val, row, index) {
children: <span>{row.name? row.name:''}</span>
props: {rowSpan: row.rowSpan}
}
}
]
}
]
点击查看代码
mergeRows = (data) => {
if (!data) return
let {pageSize} = this.state
let leng = data.length,res =[]
// 对原有数据进行分页
for (let i = 0; i< leng; i+= pageSize) {
res.push(data.slice(i, i+pageSize))
}
var newResult = [], oldResult=[]
for (let i =0; i< res.length; i++) {
// 获取数据中所查属性相同的值
res[i].reduce((result, item) =>{
if (!result.includes(item.name)) {
result.push(item.name)
}
return result
}, []).reduce((result, name) => {
// 对每条数据进行添加rowSpan
const child = res[i].filter(item => item.name === name)
oldResult = result.concat(
child.map((item, index) => ({
...item,
rowSpan: index === 0? child.length : 0
}))
)
return oldResult
}, [])
newResult.push(...oldResult)
}
return newResult
}
总结思路: 问题导出:后台返回的数据,进行行列合并之后,换页时会存在table错位
2.ant-design官方网站指出: 表格支持行列合并,使用render里的单元格属性colSpan或者rowSpan
设置为0时,设置的表格不会渲染---导致问题的关键
3.所以我们需要动态的为每一条数据添加rowSpan,当它需要合并的行或者列同名的有几个时,最开始的rowSpan便为几,剩下的为0
4.设置好rowSpan,我们会发现分页的时候为0,表格不渲染就会错位
5.于是先解决数据分页问题,再去动态修改数据,便会解决这个问题
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!