antd table组件,在项目中,出场相当频繁,样式也繁多
Now,要说的时table的展开功能
table属性 defaultExpandAllRows :初始时,是否展开所有行。以为是个王者属性,对于全部展开的需求,不要太简单哦。如此窃喜的我,却因此掉到自己挖的坑中。
开发第一步是画界面,mock数据填充。由于需求要求初始时,全部展开,试了下table属性 defaultExpandAllRows,完完全全就是想要的样子,超级开心
mock数据结束,界面数据通过接口请求来,发现,数据渲染后,所有项都是闭合的,没有展开。
于是开始一点一滴地对比mock数据时的逻辑,难道mock时,用的是children字段,才出现展开行的。现在的数据不是children字段,而我用的table属性childrenColumnName(指定属性结构的列名)造成影响了。我写了递归调用,将 指定属性结构的列名 替换为 children 字段。再看,还是不行。。。
排除了和 属性结构的列名 没关系后,开始查看数据逻辑,初始没有请求时,数据为空数组,而 table属性 defaultExpandAllRows 就是在此可起作用的,分析到此,认定了table属性 defaultExpandAllRows 根本不是什么王者属性,还得自己递归解析出数据中有展开行的rowkey, 在赋值给table属性expandedRowKeys,控制行的展开,坑,,,,呀
总结:
对于请求来的 table 表数据,实现展开所有行功能
table属性 defaultExpandAllRows :没用
table属性expandedRowKeys:有用,需要自己解析数据中所有展开行的[rowkey, rowkey, ...],再赋值给该属性