2016-09-07 9 views
5

from documentation:co onEndReachedThreshold naprawdę oznacza w reagują-rodzimy

onEndReachedThreshold liczba

Threshold w pikselach (wirtualny, a nie fizyczne) do wywoływania onEndReached. , więc chciałem tylko wiedzieć, co to znaczy, czy jest to próg od góry, czy jest to próg od dołu.

Od góry? - jeśli ustawię wartość onEndReachedThreshold = {10}, moja funkcja onEndReached zostanie wywołana, gdy tylko przewijam do 10 pikseli lub coś innego.

Od dołu? - jeśli ustawię wartość onEndReachedThreshold = {wysokość widoku listy -10}, mój onEndReached zostanie wywołany, gdy tylko przewijam do 10 pikseli lub coś innego.

Odpowiedz

3

documentation zawsze jest najlepszym sposobem, aby przejść:

onEndReached funkcja
Wywoływana, gdy wszystkie wiersze zostały wydane i lista została przewijane do wewnątrz onEndReachedThreshold dolnej. Dostarczone jest rodzime wydarzenie przewijania.

onEndReachedThreshold numer
Próg w pikselach (wirtualny, a nie fizyczne) na wywołanie onEndReached.

Tak jak ja to widzę: jeśli nie onEndReachedThreshold ={10} wywołuje onEndReached jeśli przewijane do 10 pikseli od dolnej

+0

więc jeśli mam zadzwonić onEndReached jak tylko ktoś przewijania o 10 pikseli od góry następnie muszę ustawić onEndReachedThreshold = {długość listy -10}, czy mam rację? –

+0

@ManjeetSingh Nie musiałbyś ustawić go na onEndReachedThreshold = {10} – dv3

+0

@ManjeetSingh Nie sugerowałbym powoływania się na relację z góry. To by łatwo zakończyło się nieskończoną pętlą – dv3

0

Myślę, że problem został stało, ponieważ z wielu widoków i przewija, więc zrobiłem używany jako składnik warper dla ListView on miał ten sam problem, po prostu go zmienić na widok z stylu: {Flex: 1} i to działa dobrze

return (
    <View style={{flex: 1}}> 
     <ListView 
     dataSource={this.dataSource} 
     renderRow={this._renderRow.bind(this)} 
     onEndReached={this._paginateDataSource.bind(this)} 
     style={styles.listView}/> 
     {loading} 
    </View> 
) 
3

dla ktoś używając FlatList zamiast ListView, należy pamiętać, że jednostki parametrów uległy zmianie.

Dla ListView był w pikselach od dołu, ale według docs for FlatList jest to jednostka długości od dołu w elementach listy.

Od końca (w jednostkach widocznej długości listy) dolna krawędź listy musi znajdować się od końca treści, aby wywołać zwrotne funkcji onEndReached. W związku z tym wartość 0,5 spowoduje wybranie opcji Przywołaj ponownie, gdy koniec zawartości znajdzie się w połowie długości widocznej na liście.

Tak więc, jeśli chcesz listę aktualizacji, gdy użytkownik jest w połowie bieżącego zbioru danych, należy ustawić wartość 0.5