我有以下示例使用InfiniteLoader
实现Table
,将Table
rowCount
设置为已知大数(数据库中的日志数)和InfiniteLoader
rowCount
到我获取的一批日志的大小。我需要这个,以便用户根据滚动高度知道有多少数据。否则,他必须滚动到最后,看看是否加载了更多日志。可能是因为我误用了两个rowCount
道具,但每当我快速滚动到接近结尾的索引时,数据尚未加载,data
在{{1}中未定义功能。我假设在这种情况下会调用getRowClassName
。
loadMoreRows
答案 0 :(得分:0)
可能是因为我误用了两个
rowCount
道具
您应该将相同的rowCount
值传递给InfiniteLoader
和Table
。它应该是服务器上所有数据的总大小(如here所示)或本地数据的大小+1,以便在用户滚动到末尾时允许加载更多(如图所示{{3 }})。
每当我快速滚动到接近结尾的索引(尚未加载数据)时,
getRowClassName
函数中的数据未定义。我假设在这种情况下会调用loadMoreRows
。
loadMoreRows
会被调用 - 但它是异步的。 react-virtualized不会阻止用户滚动直到数据加载。您的getRowClassName
函数需要处理这样一个事实,即用户可能比加载延迟加载的数据滚动得更快。您可以显示正在进行的其他加载"如果您愿意,可以使用已卸载行的UI。