ReactNative FlatList onEndReached вызывает, даже когда не прокручивается - PullRequest
0 голосов
/ 31 января 2019

Я пытаюсь реализовать Flatlist of Somedata, который содержит почти 200 элементов в массиве, который я передаю в данные.Я пытаюсь дать пользователю возможность загрузить остальные, когда они прокручивают только.но то, что происходит с onEndReached, это то, что он вызывает, даже если мы не прокручиваем (я проверил, ведя журнал консоли).Как я могу убедиться, что onEndReached вызывает только тогда, когда пользователь прокручивает.

Я пытался установить onEndReachedThreshold на максимум 5 и минимум 0,01 в обоих случаях, это не работает.Пробовал это тоже, но не сработало https://github.com/facebook/react-native/issues/14015#issuecomment-310675650.

<FlatList
  data={this.state.properties}
  showsVerticalScrollIndicator={false}
  keyExtractor={item => item.mlsnum}
  renderItem={({ item }) => <Text{item.title}</Text>}
  onEndReachedThreshold={0.01}
  onEndReached={() => this.handleEndReach()}
/>


async handleEndReach() {
  this.props.fetchProperties(pageNum) //call to my redux action to fetch the data
}

1 Ответ

0 голосов
/ 31 января 2019

это плохая реализация, использующая асинхронность, вы должны использовать ее в функции, а не в обратном вызове.Пожалуйста, используйте

onEndReached={() => this.fetchProperties())

, а затем для функции используйте

async fetchProperties(){
 //do your async/await here
}
...