react native遇到的问题

慕容超
2023-12-01

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}  

 

 类似资料: