ListView onEndReached nicht funktioniert, wenn innerhalb einer Ansicht
Hier ist die Sache.
Ich möchte mit der Darstellung einer listview aktualisiert die Daten, wenn onEndReached.
Während die Daten aktualisiert werden, will ich machen einen 'laden' text unterhalb der Liste (ohne das entfernen der Liste). wie diese:
render() {
var {isFetching} = this.props.query
var loading
if(isFetching){
loading = this.renderLoading()
}
return (
<ListView
dataSource={this.dataSource}
renderRow={this.renderItem}
onEndReached={this.props.fetchNextPage}
onEndReachedThreshold={10}
style={styles.listView} />
{loading}
)
}
renderLoading () {
return (
<View style={styles.loading}>
<ActivityIndicatorIOS
size='large'/>
<Text>
Loading books...
</Text>
</View>
)
}
Aber bald merkte ich, dass die render-Funktion zum zurückgeben eines einzelnen Elements. Also versuchte ich Folgendes:
return (
<View>
<ListView
dataSource={this.dataSource}
renderRow={this.renderItem}
onEndReached={this.props.fetchNextPage}
onEndReachedThreshold={10}
style={styles.listView}/>
{loading}
</View>
)
Aber dann die onEndReached feuerte wieder und wieder und wieder, sobald er montiert wurde. Noch bevor ich Sie berührte den Bildschirm.
Wie kann ich erreichen das laden anzuzeigen, während die 'infinite scroll' Verhalten?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich endlich eingesetzt zu umgehen. Ich machte die be-Ansicht, wie Sie die Fußzeile von der listView.
können Sie versuchen, zu geben ListView eine Höhe(zB:Höhe:300)
Brauchen Sie nicht zu machen, es wie die listView Fußzeile. Versuchen Sie geben dem Geschenkpapier view style: {flex: 1}:
Einer der möglichen Gründe für Ihre Liste zu Rendern wieder und wieder konnte der Wert des
onEndReachedThreshold={10}
hier.Werte, die mehr als oder gleich 1 ist, wird die Methode in
onEndReached
wird aufgerufen, sobald "Rendern" genannt.Legen Sie einen Wert sagen, von 0,5 würde bedeuten, dass
onEndReached
Methode wird aufgerufen, wenn die Hälfte der aktuellen Liste ein Bildlauf durchgeführt wird.