1、SDK location not found. Define location with sdk.dir in the local.properties file or with an ANDROID_HOME environment variable.
解决方法:编辑在工程根目录/android/local.properties文件,如果没有请新建,在文件中写入
sdk.dir=/Users/xxx/Library/Android/sdk =后面是你的SDK安装目录
2. 几种异常情况分析
(1)正常情况总结
- onPress属性方法中只要未使用箭头函数调用方法时,方法名后面都不可以带小括号。
- 使用前两种方法处理事件时,不可传递参数;如果想传递参数就必须使用第三种方式
- 在不需要传递参数时,尽量使用前两种方式
(2)异常情况总结
- 前两种方式如果在调用方法时添加了小括号,事件处理会在加载完页面之后自动执行。
- 在最新版本中Button或者TouchableOpacity标签中,onPress属性在调用事件处理方法时使用第一种方式,但是未在构造方法中绑定。使用this.handleEvent方式也可调用事件处理方法,如果后面也加上小括号,同样会出现页面加载完毕,自动加载事件处理方法的状况。
- 第三种方式存在一定问题,每当Button或者TouchableOpacity绘制的时候,都会创建一个不同的callback。大多数情况下,这种方法是没有问题的。但是当callback被当做属性传递到下级组件的时候,这些下级组件会执行多余的重新绘制动作。
5、删除Xcode缓存记录
按快捷键 shift+command+G 或者 Finder图标点击右键选 前往文件夹... 调出前往文件夹框
在里面输入如下
/Users/(自己电脑名字)/Library/Developer/Xcode/DerivedData
6、React-native error: PCH was compiled with module cache path 'but the path is currently
打开项目目录ios文件夹找到---->build---->ModuleCache,删除再次执行react-native run-ios
7、Unhandled JS Exception: TypeError: undefined is not an object (evaluating'this._subscribableSubscriptions.forEach')
https://github.com/facebook/react-native/issues/17348
The issue is caused by the uglify-es@3.3.2,back to 3.2.2
npm install -save uglify-es@3.2.2
1)通过navigate函数实现界面之间跳转:
this.props.navigation.navigate('Mine');
参数为我们在StackNavigator注册界面组件时的名称。同样也可以从当前页面返回到上一页:
// 返回上一页
this.props.navigation.goBack();
(2)跳转时传值:
this.props.navigation.navigate('Mine',{info:'传值过去'});
第一个参数同样为要跳转的界面组件名称,第二个参数为要传递的参数,info可以理解为key,后面即传递的参数。
(3)获取值:
{this.props.navigation.state.params.info}