React Native ListView onEndReached продолжает работать
По какой-то причине, которую я не понимаю, мой ListView продолжает работать, даже если он находится наверху прокрутки, мне нужно обернуть его внутри ScrollView, потому что я хочу, чтобы моя панель инструментов скрывалась, когда пользователь также прокручивал вниз в ListView.
Это содержимое метода render():
<ScrollView>
<ActivityContainer>
<ListView
onEndReachedThreshold={100}
pageSize={10}
initialListSize={20}
onEndReached={() => {
console.log("fired"); // keeps firing
}}
enableEmptySections={true}/>
</ActivityContainer>
</ScrollView>
Также попытался обернуть всю вещь в вид, как это:
<ScrollView>
<View>
<ActivityContainer>
<ListView
onEndReachedThreshold={100}
pageSize={10}
initialListSize={20}
onEndReached={() => {
console.log("fired"); // keeps firing
}}
enableEmptySections={true}/>
</ActivityContainer>
</View>
</ScrollView>
Изменить: мне не нужен renderHeader, потому что я пытаюсь прокрутить все в верхней части ListView, он имеет много компонентов и представлений и дочерних представлений, а не заголовок представления списка.
2 ответа
Посмотрите, работает ли это:
<ListView
onEndReachedThreshold={100}
pageSize={10}
renderHeader={() => <ToolbarAndroid />}
initialListSize={20}
onEndReached={() => {
console.log("fired"); // keeps firing
}}
enableEmptySections={true}/>
Используйте хеш для подкачки в ListView, когда> 1 столбец
В настоящее время я использую React Native v44, но не пробовал последнюю версию.
В вашем конструкторе попробуйте это...
constructor(props) {
this.pagesLoaded = {}
this.currentPage = 1
// etc
}
Тогда в вашем методе извлечения данных попробуйте это...
getData() {
if (this.pagesLoaded[this.state.currentPage]) return
this.pagesLoaded[this.state.currentPage] = true
// fetch data
}
Таким образом, когда onEndReached
перегружен, это не имеет значения. Это похоже на ошибку в ListView, так как я установил размеры вокруг него и не имел его в пределах ScrollView
так что это происходило исключительно внутри компонента, даже если настройка getItemLayout
двигательный