記一個開發中遇到react-native flatList 的坑


因項目需求封裝了一個 View 作為 react native  flatList 的 item, 在原生 View 有方法響應需要傳遞到到 RN, 然后出現一個閃退問題: 在滑到最后在滑回來, 滑到第一張 有時候是第二張的時候, 單擊(原生 View 的單擊手勢)的時候就會閃退, 同樣的在 item 的數量多的時候都會出現這個問題, item 少的則不會.

后來在調試的時候發現原生的 View 為 nil, 於是想到可能是該 flatList 的 item 被回收了,  那怎么解決呢/

看了下 flatList 的屬性, 他其實也是根據原生視圖封裝的, 雖然不懂他的機制 , 但肯定是存在復用機制的, 正好有一個屬性

initialNumToRender

他本來的目的是渲染一開始的元素個數, 用來在最短的時間把內容呈現給用戶, 但是后面的介紹很有意識, 在滑動的時候不會卸載這些一開始渲染的 item, 也就是說這些 item 從一開始渲染就不會被銷毀, 那么我的原生 View 就不會變為 nil, 所以閃退就解決了

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM