Pet*_*ier 6 reactjs react-redux react-virtualized
我试图InfiniteLoader从react-virtualize库中使用来显示textSearch顶部有一个输入字段的可滚动列表(用于过滤列表条目)。
我使用的代码与InfiniteLoader Sample Code非常接近。该列表工作正常,但我不确定如何InfiniteLoader在searchText更改时重置/初始化并显示(完全)新数据。
流程是这样的:
redux store(工作正常)的数据。textSearch和新数据被提取到storeInfiniteLoader应该进行初始化(我打过电话resetLoadMoreRowsCache上InfiniteLoader)InfiniteLoader应该loadMoreRows第一次调用like 并使用新数据重新渲染我已经看到INFINITELOADER DEMO具有相同的行为:通过单击“刷新缓存数据”,在我开始整理列表之前没有任何反应。
所以我的问题是:重置/初始化的正确方法是什么?
InfiniteLoader由于已发布此问题,InfiniteLoader因此获得了一个自动重新加载数据的参数。您现在可以使用:
infiniteLoaderRef.resetLoadMoreRowsCache(true);
Run Code Online (Sandbox Code Playgroud)
自动刷新缓存并获取新行。
InfiniteLoaderInfiniteLoader对渲染的一系列行做出反应。该resetLoadMoreRowsCache方法只是重置缓存数据。它不会自动请求加载一批行。
可以说是应该的。我不知道。如果应用程序状态发生变化以致于需要resetLoadMoreRowsCache调用,那么用户代码自动加载第一批新数据似乎很容易。
无论如何,tl;dr 是你应该能够做到这一点:
infiniteLoaderRef.resetLoadMoreRowsCache(); // Reset the cache
loadMoreRows({ // Manually kick off the first batch
startIndex: 0,
stopIndex: 20 // Or whatever
});
Run Code Online (Sandbox Code Playgroud)
如果您认为可以改进,很高兴查看 PR 以更改默认行为。