Вот функция render() для моей простой category list page
.
Недавно я добавил разбивку на страницы для своего FlatList
View, поэтому, когда пользователь прокручивается в нижнюю часть, onEndReached
вызывается в определенной точке (onEndReachedThreshold
значения onEndReachedThreshold
снизу), и он будет выбирать следующие categories
и объединяет реквизиты категорий.
Но моя проблема - onEndReached вызывается при вызове render(). Другими словами, FlatList onEndReached
запускается до того, как он достигнет дна.
Я помещаю неправильное значение для onEndReachedThreshold?
Вы видите какую-то проблему?
return (
<View style={{ flex:1 }}>
<FlatList
data={this.props.categories}
renderItem={this._renderItem}
keyExtractor={this._keyExtractor}
numColumns={2}
style={{flex: 1, flexDirection: 'row'}}
contentContainerStyle={{justifyContent: 'center'}}
refreshControl={
<RefreshControl
refreshing = {this.state.refreshing}
onRefresh = {()=>this._onRefresh()}
/>
}
// curent value for debug is 0.5
onEndReachedThreshold={0.5} // Tried 0, 0.01, 0.1, 0.7, 50, 100, 700
onEndReached = {({distanceFromEnd})=>{ // problem
console.log(distanceFromEnd) // 607, 878
console.log('reached'); // once, and if I scroll about 14% of the screen,
//it prints reached AGAIN.
this._onEndReachedThreshold()
}}
/>
</View>
)
ОБНОВЛЕНИЕ Я получаю данные this.props.categories
здесь
componentWillMount() {
if(this.props.token) {
this.props.loadCategoryAll(this.props.token);
}
}