0

我有一个像这样保存 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 条消息不应该加载,直到用户位于列表的末尾,并且当他们在列表的底部实际进行滚动动作时。

我不确定这个问题是否可以解决,但感谢任何见解!

4

0 回答 0