ReactNative 遇见的坑
基于0.39,Android平台
1、ListView 吃内存,无法回收内存;
用Native 来自定义RN组件
目前需要完善: Type相同,布局不同情况下无法动态改变UI
2、navigator动画慢;
使用InteractionManager.runAfterInteractions 有所改善,但还是稍慢
3、循环动画会阻塞InteractionManager.runAfterInteractions的执行;
解决方案:
Animated.timing(this.state.animatedStartValue, {
toValue: 1,
duration: 500,
delay: 1000,
isInteraction: false,//加入此参数可解决,官方文档上无此参数说明
}),
4、尽量使用shouldComponentUpdate控制刷新,显著提高性能;
5、低版本使用flex布局,设置flex属性,高版本改成flexGrow,flexShirk等属性,若不会造成UI错乱;
6、debug版本经常崩溃,release版本无此问题,官方文档0.42上会修复此问题;
崩溃原因:
在debug版本时APP一直尝试连接本地代码,失败了就再次创建HttpClient去连接,直到OOM;
7、使用Modal时不要和系统的Dialog同时弹出,否则会崩溃,
崩溃原因:
Modal最终实现还是用Dialog,没有获得Token;
8、业务量过大时,bundle过大,加载稍慢,第一次加载把所有文件load进入内存(官方未出拆包方案),无法像HTML按需加载;
9、Text无法设置border;
10、打包过程中图片按照 图片文件目录+图片名 生成到一个文件夹中
@2x的生成到xhdpi
@3x的生成到xxhdpi
为减小包大小可去掉@3x图片
11、横向ScrollView,若两tab高度不一致时,容易出现高度错乱;
12、RN升版本改动很大
13、错误日志打印不全,遇到崩溃难以跟踪到具体代码位置,难以调试;IOS稍好,Android太慢;