重置/初始化 InfiniteLoader 的正确方法是什么
What's the right way to reset / initialize InfiniteLoader
我正在尝试使用 react-virtualize
库中的 InfiniteLoader
来显示顶部有一个 textSearch
输入字段(用于过滤列表条目)的可滚动列表。
我使用的代码非常接近InfiniteLoader Sample Code。
该列表工作正常,但我不确定如何在 searchText
更改时 reset/initialize InfiniteLoader
并且应显示(完全)新数据。
流程是这样的:
- 列表是第一次打开并显示来自
redux store
的数据(工作正常)。
- 用户更改
textSearch
并且新数据被提取到 store
- 此时,
InfiniteLoader
应该被初始化(我尝试在 InfiniteLoader
上调用 resetLoadMoreRowsCache
)
InfiniteLoader
应该像第一次调用 loadMoreRows
并使用新数据重新渲染
我已经看到 INFINITELOADER DEMO 具有相同的行为:通过单击 'Flush Cached Data' 在我开始滚动列表之前没有任何反应。
所以我的问题:reset/initialize的正确方法是什么?
对于更新版本的 InfiniteLoader
由于发布了这个问题,InfiniteLoader
获得了一个自动重新加载数据的参数。您现在可以使用:
infiniteLoaderRef.resetLoadMoreRowsCache(true);
自动刷新缓存并获取新行。
旧版本 InfiniteLoader
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 以更改默认行为。
我正在尝试使用 react-virtualize
库中的 InfiniteLoader
来显示顶部有一个 textSearch
输入字段(用于过滤列表条目)的可滚动列表。
我使用的代码非常接近InfiniteLoader Sample Code。
该列表工作正常,但我不确定如何在 searchText
更改时 reset/initialize InfiniteLoader
并且应显示(完全)新数据。
流程是这样的:
- 列表是第一次打开并显示来自
redux store
的数据(工作正常)。 - 用户更改
textSearch
并且新数据被提取到store
- 此时,
InfiniteLoader
应该被初始化(我尝试在InfiniteLoader
上调用resetLoadMoreRowsCache
) InfiniteLoader
应该像第一次调用loadMoreRows
并使用新数据重新渲染
我已经看到 INFINITELOADER DEMO 具有相同的行为:通过单击 'Flush Cached Data' 在我开始滚动列表之前没有任何反应。
所以我的问题:reset/initialize的正确方法是什么?
对于更新版本的 InfiniteLoader
由于发布了这个问题,InfiniteLoader
获得了一个自动重新加载数据的参数。您现在可以使用:
infiniteLoaderRef.resetLoadMoreRowsCache(true);
自动刷新缓存并获取新行。
旧版本 InfiniteLoader
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 以更改默认行为。