【发布时间】:2017-05-27 09:13:48
【问题描述】:
如果我可以使用 React Virtualized 的 Collection 组件来解决我的问题,我有点困惑。我将尝试描述我在做什么:
我在页面上使用 React Virtualized 来显示两个项目列表/集合。我已经完成了第一个具有相同宽度和高度的项目的集合:
第一个集合非常简单且易于实施。 现在我正在处理第二个集合,其中包含不同大小的图像。我希望单元格具有相同的高度但不同的宽度(当然取决于图像尺寸)。问题是行可能并不总是具有相同数量的单元格:
这可以通过 React Virtualized 实现吗?如果是,如何确定“cellSizeAndPositionGetter”中的位置?
【问题讨论】:
-
简短回答:你不能。我能想到的一种解决方法是将所有单元格拆分为实际行,因此在您的情况下,第 1 行将具有前三个图像,而第 2 行将具有接下来的四个图像。然后,您将虚拟化行本身,而不是单个单元格。这是一般虚拟化列表的“设计”限制(“列表”,而不是“网格”)。
-
我同意 Sergiu 的说法。补充一点——你展示的顶级收藏确实应该是
Grid,而不是Component。Grid更高效,使用更简单。您显示的第二个可能是List,但计算行数会有点棘手。 -
@brianvaughn 我猜你的意思是
Collection而不是Component?不管怎样,我明白你们俩在说什么。我想我会在第一个系列中尝试Grid。对于第二个集合,我最终使用了CassetteRocks/react-infinite-scroller。当我有空闲时间时,我会尝试再次使用 React Virtualized 实现第二个集合。因为我真的很喜欢回购! :) 谢谢你们的意见。 -
对不起,是的。输入错误。 :) 很高兴听到!
标签: css reactjs infinite-scroll react-virtualized