因項目需求封装了一个 View 作为 react native flatList 的 item, 在原生 View 有方法响应需要传递到到 RN, 然后出现一个闪退问题: 在滑到最后在滑回来, 滑到第一张 有时候是第二张的时候, 单击(原生 View 的单击手势)的时候就会闪退, 同样的在 item 的数量多的时候都会出现这个问题, item 少的则不会.
后来在调试的时候发现原生的 View 为 nil, 于是想到可能是该 flatList 的 item 被回收了, 那怎么解决呢/
看了下 flatList 的属性, 他其实也是根据原生视图封装的, 虽然不懂他的机制 , 但肯定是存在复用机制的, 正好有一个属性
initialNumToRender
他本来的目的是渲染一开始的元素个数, 用来在最短的时间把内容呈现给用户, 但是后面的介绍很有意识, 在滑动的时候不会卸载这些一开始渲染的 item, 也就是说这些 item 从一开始渲染就不会被销毁, 那么我的原生 View 就不会变为 nil, 所以闪退就解决了