因項目需求封裝了一個 View 作為 react native flatList 的 item, 在原生 View 有方法響應需要傳遞到到 RN, 然后出現一個閃退問題: 在滑到最后在滑回來, 滑到第一張 有時候是第二張的時候, 單擊(原生 View 的單擊手勢)的時候就會閃退, 同樣的在 item 的數量多的時候都會出現這個問題, item 少的則不會.
后來在調試的時候發現原生的 View 為 nil, 於是想到可能是該 flatList 的 item 被回收了, 那怎么解決呢/
看了下 flatList 的屬性, 他其實也是根據原生視圖封裝的, 雖然不懂他的機制 , 但肯定是存在復用機制的, 正好有一個屬性
initialNumToRender
他本來的目的是渲染一開始的元素個數, 用來在最短的時間把內容呈現給用戶, 但是后面的介紹很有意識, 在滑動的時候不會卸載這些一開始渲染的 item, 也就是說這些 item 從一開始渲染就不會被銷毀, 那么我的原生 View 就不會變為 nil, 所以閃退就解決了