什么是正确的方式来重置/初始化InfiniteLoader
问题描述:
我试图使用react-virtualize
库InfiniteLoader
显示一个顶部输入字段(用于过滤列表条目)的可滚动列表。什么是正确的方式来重置/初始化InfiniteLoader
我使用的代码非常接近InfiniteLoader Sample Code。 该清单工作正常,但我不知道如何更改/初始化InfiniteLoader
searchText
更改和(完全)新数据应显示。
流程是这样的:打开首次
- 列表,显示了从
redux store
(正常工作)的数据。 - 用户改变
textSearch
和新的数据提取到store
- 在这一点上,
InfiniteLoader
应进行初始化(我试过InfiniteLoader
调用resetLoadMoreRowsCache
) -
InfiniteLoader
应该叫loadMoreRows
像第一次和重新呈现与新的数据
我见过的INFINITELOADER DEMO具有相同的行为:通过点击“刷新缓存数据”什么也没有发生,直到我开始scolling列表。
所以我的问题:什么是正确的方式来重置/初始化?
答
InfiniteLoader
对渲染的行范围有反应。 resetLoadMoreRowsCache
method只是重置缓存的数据。它不会自动请求加载一批行。
可以说它应该。我不知道。如果应用程序状态发生变化,需要调用resetLoadMoreRowsCache
,用户代码似乎很容易自动加载第一批新数据。
无论如何,文艺青年最爱的是,你应该能够做到这一点:
infiniteLoaderRef.resetLoadMoreRowsCache(); // Reset the cache
loadMoreRows({ // Manually kick off the first batch
startIndex: 0,
stopIndex: 20 // Or whatever
});
快乐审查公关如果你觉得还可以提高,以改变默认的行为。
感谢您的澄清(也为这个伟大的图书馆!)。你的建议加上对'recomputeRowHeights' - 'List'方法的调用完成了。再次感谢 – PeteMeier