好久没写博客了,特地把之前接触React Native时遇到的坑总结一下。
初始化一个React Native项目时,可能会遇到以下这些坑:
1、项目版本号与安卓模拟器中安装的 compileSdkVersion 和 buildToolsVersion 版本不一致,这时候可以直接修改 项目 => android => app => build.gradle文件下的版本号,如下:
2、初始化一个项目并运行项目时,可能会一直报错,这时有可能是因为缺少 local.properties文件,该文件用于指定 SDK的路径(该文件存放在项目目录下 => android 下)
文件内容如下:
sdk.dir=C:\Users\android\AppData\Local\Android\sdk (这是我的sdk安装路径)
3、可能会出现React Native与javascript版本号不一致,这时候可以新建一个与javascript版本号一致的React Native项目,命令如下:
react-native init 项目名 --version 具体的版本号
4、有时候运行会出错,报错类似"Cannot add a child that doesn't have a YogaNode or parent node" 这种,有可能是因为render方法中含有注释语句,这时候删除注释语句,可能就会正常运行了。
5、文本放在Text标签中,不要直接放在View标签中(View是一个容器,用来包含其他的标签的),否则模拟器可能会直接崩了(亲测,android studio和genymotion下都崩了,当然也可能是我的版本的原因)
6、当我们执行点击事件,如onPress时,希望在点击后显示高亮状态,这时候就可以使用TouchableHighlight组件了,但是,注意:该组件只能包含一个子节点,否则会出错,如果希望它包含多个节点,那么可以在它里面嵌套一个View(默认情况下TouchableHighlight组件在点击时会出现一个黑背景,且标签大小可能会有所改变,要解决该问题,可以使用属性underlayColor,将其值设为白色(‘#fff’))
7、在使用导航组件react-navigation时,使用yarn来安装(yarn add react-navigation
),用npm安装的话可能会存在许多未知错误(更不要使用cnpm)