要實作列表拉到底時自動讀取新資料,但是遇到很多問題。
列表是使用react native的FlatList元件,一開始讀取資料進來時,就會觸發onEndReached的事件,明明甚麼動作都沒做,傻眼。
一開始是查到這個解法:
https://stackoverflow.com/questions/53408470/flatlist-onendreached-being-called-multiple-times
一開始是查到使用onMomentumScrollBegin這個事件,再加上一個flag,再加上setTimeout,去針對當Scrolling開始時flag解鎖,才去呼叫更多資料,並加上setTimeout控制不要一次發太多request。
但onMomentumScrollBegin這個事件好像沒甚麼用,用滑鼠拖曳來拖曳去都沒有觸發....
後來找到這個解法:
https://stackoverflow.com/questions/47351592/reactnative-flatlist-onendreached-not-working
In my case the problem was with nativebase <Content>
. It was creating problems when <FlatList>
was used inside it. Solution :
<Content
style={{flex: 1}}
contentContainerStyle={{flex: 1}} // important!
>
原來是nativebase的<Content>和react native的<FlatList>相衝的問題啊!!
必須在Content tag裏頭加上
style={{flex: 1}}
contentContainerStyle={{flex: 1}} // important!
根本問題才解決
特此紀錄
--
留言列表