2017-05-05 73 views
1

我试图使用react-virtualizeInfiniteLoader显示一个顶部输入字段(用于过滤列表条目)的可滚动列表。什么是正确的方式来重置/初始化InfiniteLoader

我使用的代码非常接近InfiniteLoader Sample Code。 该清单工作正常,但我不知道如何更改/初始化InfiniteLoadersearchText更改和(完全)新数据应显示。

流程是这样的:打开首次

  1. 列表,显示了从redux store(正常工作)的数据。
  2. 用户改变textSearch和新的数据提取到store
  3. 在这一点上,InfiniteLoader应进行初始化(我试过InfiniteLoader调用resetLoadMoreRowsCache
  4. InfiniteLoader应该叫loadMoreRows像第一次和重新呈现与新的数据

我见过的INFINITELOADER DEMO具有相同的行为:通过点击“刷新缓存数据”什么也没有发生,直到我开始scolling列表。

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

回答

0

InfiniteLoader对渲染的行范围有反应。 resetLoadMoreRowsCache method只是重置缓存的数据。它不会自动请求加载一批行。

可以说它应该。我不知道。如果应用程序状态发生变化,需要调用resetLoadMoreRowsCache,用户代码似乎很容易自动加载第一批新数据。

无论如何,文艺青年最爱的是,你应该能够做到这一点:

infiniteLoaderRef.resetLoadMoreRowsCache(); // Reset the cache 

loadMoreRows({ // Manually kick off the first batch 
    startIndex: 0, 
    stopIndex: 20 // Or whatever 
}); 

快乐审查公关如果你觉得还可以提高,以改变默认的行为。

+0

感谢您的澄清(也为这个伟大的图书馆!)。你的建议加上对'recomputeRowHeights' - 'List'方法的调用完成了。再次感谢 – PeteMeier

相关问题