2016-09-07 93 views
5

from documentation什麼onEndReachedThreshold實際上意味着在反應母語

onEndReachedThreshold數以像素爲單位

閾值(虛擬的,不是物理的)調用onEndReached。所以我只想知道它是什麼意思,它是從頂端開始的閾值還是從底部開始。

從頂部? - 如果我設置了onEndReachedThreshold = {10}的值,那麼當我滾動到10個像素或其他東西時,我的onEndReached被調用。

從底部? - 如果我設置onEndReachedThreshold = {listview height -10}的值,我的onEndReached會在我滾動到10像素或其他東西時立即調用。

回答

3

documentation始終是最好的一段路要走:

onEndReached功能
當所有行內onEndReachedThreshold 底部的被渲染和名單已滾動到調用。提供本地滾動事件。

onEndReachedThreshold數
閾值以像素爲單位(虛擬的,而不是物理)用於調用onEndReached。

所以當我看到它: 如果你onEndReachedThreshold ={10}它調用onEndReached如果從底部

+0

所以,如果我要通過從頂部10像素儘快撥打onEndReached有人滾動那麼我必須設置onEndReachedThreshold = {列表視圖-10}的長度,我是對的嗎? –

+0

@ManjeetSingh不,你將不得不將它設置爲onEndReachedThreshold = {10} – dv3

+0

@ManjeetSingh我不會建議依靠從頂部的關係。這將很容易結束在無盡的循環 – dv3

0

我認爲這個問題是發生的,因爲許多意見和卷軸滾動到10個像素,因此我沒有使用作爲對於ListView它有同樣的問題,一個整經機部件,我只是改變它的風格查看:{柔性:1},它工作正常

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

對於使用FlatList代替人,請注意,參數單位已更改。

對於ListView它是從底部開始的像素,但是根據docs for FlatList,它是在列表項中從底部開始的單位長度。

距離結尾有多遠(以列表的可見長度爲單位)列表的底部邊緣必須從內容的末尾觸發onEndReached回調。因此,當內容的結束在列表的可見長度的一半內時,0.5的值將觸發onEndReached。

因此,如果你想要的名單,當用戶是一半,把當前的數據進行更新,將值設置爲0.5