首先搭建环境就是很坑的感觉,所以必须记录下,以勉!!!
1.rn 0.56版本bug导致启动安卓项目大红屏 一直报错:server response code 500什么什么的 Unable to resolve module AccessibilityInfo from XXX,解决方案降级为0.55后ok, 参考链接: https://blog.csdn.net/j550341130/article/details/81027700
2.所有js文件,都是从上到下执行,先声明要使用的变量或class,再使用,顺序不能变。如遇到外部的必须要先声明的import
3.=>箭头函数如果不写{} 则默认有return
4.const{a} = this.props ES6解构语法,当复制的变量名称和读取的属性名称一致时则可以使用这种语法, 等同于:const a = this.props.a
5.获取开发版SHA1值和发布版SHA1值的史上最详细方法: 1.输入命令 C: 进入c盘; 2.接着 输入命令 cd Users\Administrator 其中Administrator是自己的用户名 Administrator文件下有个.adnroid文件, 输入命令 cd .android,最后就找到了.android 3.keytool -list -v -keystore debug.keystore 发布版:前面的keystore换成自己的就好了:输入命令 keytool -list -v -keystore 文件目录\自己的签名文件 比如我的:keytool -list -v -keystore E:\签名文件\android.keystore ,接着按回车,然后输入秘钥:(我只知道我的,哈哈) 回车(秘钥库口令是看不到的。
6.yy天气API接口可以直接拉取天气信息
7.getCurrentPosition方法和fetch方法都是异步的,用于赋值只能用this.setState()方法或者直接方法内部使用取到的值,外部是取不到值的,
8.this.state不要写错 this.State,不然setState(),不会渲染、
9.真机调试闪退,一般情况下,都是链接不上js服务器,摇一摇手机,Dev settings修改IP端口号,则ok;
10.rn中{}里面传递的是对象,如果传递一个函数例如myClick(),写为:{this.myClick}正确,{this.myClick()} 错误,这样是把函数执行后的结果传递进去
11.使用react-native-action-button组件的时候需要注意,<ActionButton></ActionButton>在js代码中必须写在其所属的父组件的最后面,不然该按钮无法显示出来,(是否是因为渲染先后的原因,不得而知)
12.RN 中安卓不能直接使用动态gif图片,ios可以直接使用,android则需要在app下build.gradle中加入两行代码:
compile 'com.facebook.fresco:animated-gif:1.3.0'
compile 'com.facebook.fresco:animated-base-support:1.3.0'
13.在国内不要直接调用自带的Geolocation.getCurrentLocation(),因为这是去调用谷歌地图API获取经纬度,国内是一般是拿不到的,所以建议使用国内的定位组件:ReactNative-BaiduMap