我正在尝试使用InfiniteLoader
库中的react-virtualize
来显示一个可滚动的列表,其顶部有一个textSearch
输入字段(用于过滤列表条目)。
我使用的代码非常接近InfiniteLoader Sample Code。
该列表工作正常,但我不确定如何更改InfiniteLoader
searchText
更改/初始化,并且(完全)应显示新数据。
流程是这样的:
redux store
的数据(工作正常)。textSearch
,新数据将提取到store
InfiniteLoader
应该被初始化(我尝试在resetLoadMoreRowsCache
上调用InfiniteLoader
)InfiniteLoader
应首次致电loadMoreRows
并使用新数据重新投放我已经看到INFINITELOADER DEMO具有相同的行为:通过点击'Flush Cached Data',在我开始搜索列表之前没有任何事情发生。
所以我的问题:重置/初始化的正确方法是什么?
答案 0 :(得分:2)
InfiniteLoader
对正在呈现的行范围作出反应。 resetLoadMoreRowsCache
method只会重置缓存的数据。它不会自动请求加载一批行。
可以说它应该。我不知道。如果应用程序状态发生变化,以便需要调用resetLoadMoreRowsCache
,则用户代码似乎很容易自动加载第一批新数据。
无论如何,tl; dr是你应该能够做到的:
infiniteLoaderRef.resetLoadMoreRowsCache(); // Reset the cache
loadMoreRows({ // Manually kick off the first batch
startIndex: 0,
stopIndex: 20 // Or whatever
});
如果您觉得可以改进,可以快速查看PR以更改默认行为。