我有一个像这样保存 FlatList 的屏幕(我替换了不相关的代码,...
以使问题尽可能容易阅读):
<FlatList
data={messages}
keyExtractor={item => item.id}
ListFooterComponent={...}
onEndReachedThreshold={0}
onEndReached={onNextPageLoadHandler}
refreshControl={...}
renderItem={...}
/>
问题是,如果我有一个非常短的列表完全适合一个屏幕,那么当用户登陆屏幕时onEndReached
就会被触发。这会导致下一批消息的自动加载,这是我不想要的。我想要它,以便onEndReached
在用户到达列表末尾并且用户实际进行手动滚动操作时触发。
IE
- 消息总页数 = 2
- 适合一页的消息数 = 2
- 消息总数 = 4
问题:当用户第一次登陆我的屏幕时,他们将看到前 2 条消息,但由于它们已经在列表的末尾(即使他们没有向下滚动到列表的底部),onEndReached
被触发并且接下来的 2 条消息会自动加载。
期望行为:当用户第一次登陆屏幕时,他们应该看到前 2 条消息。但是,接下来的 2 条消息不应该加载,直到用户位于列表的末尾,并且当他们在列表的底部实际进行滚动动作时。
我不确定这个问题是否可以解决,但感谢任何见解!