记一个开发中遇到react-native flatList 的坑

因項目需求封装了一个 View 作为 react native  flatList 的 item, 在原生 View 有方法响应需要传递到到 RN, 然后出现一个闪退问题: 在滑到最后在滑回来, 滑到第一张 有时候是第二张的时候, 单击(原生 View 的单击手势)的时候就会闪退, 同样的在 item 的数量多的时候都会出现这个问题, item 少的则不会.

后来在调试的时候发现原生的 View 为 nil, 于是想到可能是该 flatList 的 item 被回收了,  那怎么解决呢/

看了下 flatList 的属性, 他其实也是根据原生视图封装的, 虽然不懂他的机制 , 但肯定是存在复用机制的, 正好有一个属性

initialNumToRender

他本来的目的是渲染一开始的元素个数, 用来在最短的时间把内容呈现给用户, 但是后面的介绍很有意识, 在滑动的时候不会卸载这些一开始渲染的 item, 也就是说这些 item 从一开始渲染就不会被销毁, 那么我的原生 View 就不会变为 nil, 所以闪退就解决了

原文地址:https://www.cnblogs.com/ChrisZhou666/p/8432940.html