什么是重置/初始化InfiniteLoader

时间:2017-05-05 07:58:36

标签: reactjs react-redux react-virtualized

我正在尝试使用InfiniteLoader库中的react-virtualize来显示一个可滚动的列表,其顶部有一个textSearch输入字段(用于过滤列表条目)。

我使用的代码非常接近InfiniteLoader Sample Code。 该列表工作正常,但我不确定如何更改InfiniteLoader searchText更改/初始化,并且(完全)应显示新数据。

流程是这样的:

  1. 该列表首次打开并显示redux store的数据(工作正常)。
  2. 用户更改textSearch,新数据将提取到store
  3. 此时,InfiniteLoader应该被初始化(我尝试在resetLoadMoreRowsCache上调用InfiniteLoader
  4. InfiniteLoader应首次致电loadMoreRows并使用新数据重新投放
  5. 我已经看到INFINITELOADER DEMO具有相同的行为:通过点击'Flush Cached Data',在我开始搜索列表之前没有任何事情发生。

    所以我的问题:重置/初始化的正确方法是什么?

1 个答案:

答案 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以更改默认行为。