写在前面:
这个问题巨坑一个,足足花了我2天时间。
现象描述:
使用react-native run-android 命令打的包能正常安装在模拟器上运行,一切都是那么的平静。然而,我使用gradlew assembleRelease命令打出的生产包,编译都ok,已安装到手机上(android)启动时就崩了,使用手机连上androidStudio后,看到报的日志是undefined is not an object (evaluating ‘a.View.propTypes.style’)(或者是XXX.View.propTypes.style’)
代码示例:
export default class Header extends Component {
static propTypes = {
style: View.propTypes.style,//看到了吗?就是这句,一个公共组件,一不小心混了一个这东西,太坑了
title: PropTypes.string,
showGoBack: PropTypes.bool,
onBack: PropTypes.func,
titleStyle: PropTypes.object,
rightTitle: PropTypes.string,
onRight: PropTypes.func,
rightIcon: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
renderRightItem: PropTypes.func
}
解决方案:
在文件中引入PropTypes
import PropTypes from 'prop-types';
将所有
View.propTypes.XXX
换成
PropTypes.XXX
这就就ok了!!!!
总结:
如果遇到APP崩溃的情况,一定要看日志(android就用androidStudio,不会使用的去简单学一下就行了,很简单),这样才能精确定位到问题,对症下药。
为了能及时的将自己踩到的前端坑分享给大家,以后会逐渐将文章转移到微信公众号:前端e家(front_e_family)。可直接扫码关注,公众号会不定期更新新文章,分享踩坑笔记!期待您的关注!