一、問題
RN項目里使用Flatlist組件,上拉刷新item過多時,出現跳屏、閃屏、空白屏等問題。
二、原因
先在render函數里log了一下,發現沒有re-render,判斷不是網絡請求或頁面內組件數據變動導致的重復渲染;
然后判斷是Flatlist自己的觸底監聽機制有問題;
最后查到是因為最外層父View沒有設置固定height或只設置{flex:1}屬性,導致onEndReached不能正確監聽事件。
三、解決
1.給最外層父組件一個固定高度{height:‘100%’};
2.設置onEndReachedThreshold={0.01},確保滑動到距離底部最后0.01時再調動加載功能即可。
補充:
發現scrollview組件出現在部分機型上滑動無效(例如華為p20)的問題時,采用上述方法能夠解決問題。