virtuallist-antd
virtuallist-antd copied to clipboard
合并单元格的情况下,使用antd v3 或者 v4都会出现高度计算错误的问题
跨行的情况下,使用antd v3 或者 v4都会出现高度计算错误的问题;
在readme中随便找一个column,将他的render替换为:
render: (value, row, index) => { const obj = { children: value, props: { rowSpan: (index + 1) % 10 } }; return obj; }
原来的设计是把每行都弄成同样的高度.... 然后再根据滚动条当前所在位置, 判断是第几个元素..
错乱了是因为你的rowSpan破坏了同样高度的问题.
设置了某列render为你的写法之后, 你看渲染的条数是没有问题的, 但是数据会出现遮盖.
========================================================== 当前的设计是不能为每行设置不同的高度的, 我会以第一行的高度为准, 以第一行的高度来规定每行的高度. (这是固定高度的虚拟列表)
而且你使用跨行的话, 你的写法是每行都会有数据的, 就会出现问题, 而如果是return index % 2 === 0 ? obj : null
的话, 就不会有问题
你是想要哪种场景? 每行都有数据 正常的antd-table不用虚拟列表会出现这样的场景: https://codesandbox.io/s/biaogexingliehebing-antd4100-forked-yr6cs 这是你要的吗?
和你的comment 例子表达的是一样的,跨行就是某些行拥有相同的数据,方便用户统计
但是, 虚拟列表是展现有限的条数, 比如1-20行都有相同的数据, 那么第一行就rowSpan: 20, 你滚动到下面, 那虚拟列表就会重新加载下面的数据, 此时第一行就会消失了. 数据就会出现问题了.
合并行的主要问题是 滚动到下面 重新加载数据的时候, 上面拥有rowSpan的那个数据已经被清掉了.
暂时想不出有什么好办法解决这个问题, 缓兵之计让虚拟列表多加载点数据?
如果需要, 我可以暴露一个变量, 可以让你控制虚拟列表的临界数量. 我预先设置的数量为2-3个.
这可以解决一部分问题(一般只有2 3三个合并的话, 直接临界设10就可解决), 但是解决不了我上面说的有很多行都是一样的数据, 甚至上100行那种.
大佬,现在支持合并单元格时,rowSpan数值不定的情况吗?
但是, 虚拟列表是展现有限的条数, 比如1-20行都有相同的数据, 那么第一行�就rowSpan: 20, 你滚动到下面, 那虚拟列表就会重新加载下面的数据, 此时第一行就会消失了. 数据就会出现问题了.
合并行的主要问题是 滚动到下面 重新加载数据的时候, 上面拥有rowSpan的那个数据已经被清掉了.
使用虚拟列表不要使用合并行.
希望可以跟进一下这个问题~~ 同有需求场景
合并行能支持分页吗? 如果不支持, 虚拟列表也做不到