我在 Masonry 上使用 react-virtualized 的例子(这里)
它有效。但是现在我正在尝试将 InfiniteLoader 添加到示例中,但无法使其正常工作。
我尝试过的事情:
- 不使用 WindowScroller 并定义我自己的高度
最初我认为它可以通过删除 WindowScroller 来工作,但从未调用loadMoreRows回调。
也永远不会调用isRowLoaded回调。
一段代码演示了它是如何实现的:
<InfiniteLoader
isRowLoaded={this._isRowLoaded}
loadMoreRows={this._loadMoreRows}
rowCount={myList.length}
>
{({ onRowsRendered, isScrolling, registerChild }) => (
<WindowScroller overscanByPixels={OVERSCAN}>
{this._renderAutoSizer}
</WindowScroller>
)}
</InfiniteLoader>
从_renderAutoSizer就像示例一样。没有变化。Masonry 按预期工作,但无法实现无限滚动。
我知道我需要以某种方式使用 onRowsRendered 。但是这些示例显示了列表和网格的用法。Masonry 似乎无法与 InfiniteLoader 连接。