React-Native 点滴记录

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被当做属性传递到下级组件的时候,这些下级组件会执行多余的重新绘制动作。

3、删除Xcode缓存记录

按快捷键 shift+command+G 或者 Finder图标点击右键选 前往文件夹... 调出前往文件夹框

在里面输入如下 
/Users/(自己电脑名字)/Library/Developer/Xcode/DerivedData

5、React-native error: PCH was compiled with module cache path 'but the path is currently 

打开项目目录ios文件夹找到---->build---->ModuleCache,删除再次执行react-native run-ios

6、Android Failed Override

Native moduleNative module RCTCameraModule tried to override RCTCameraModule for module name RCTCameraModule. If this was your intention, set canOverrideExistingModule=true 

找到android/app/src/main/java/com/xxx/MainApplication.java,找到里面的重复的引用,把重复的部分删除后再运行react-native run-android

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 [email protected],back to 3.2.2

npm install -save [email protected]

  (1)  通过navigate函数实现界面之间跳转:this.props.navigation.navigate('Home');

         参数为我们在StackNavigator注册界面组件时的名称。同样也可以从当前页面返回到上一页:this.props.navigation.goBack();  

(2)跳转时传值:this.props.navigation.navigate('Home', { key: 'value' });

(3)获取值:{ this.props.navigation.state.param.key }

8、CodePush热更新

    code-push app add 添加一个新的APP

        code-push app add MyApp Android react-native

    code-push app add MyApp iOS react-native

  发布更新

    code-push release-react <appName> <platform>

        例:code-push release-react MyApp-iOS ios

                code-push release-react MyApp-Android android

9、使用Flatlist时IOS可以完整展示ListFooterComponent底部布局,遇到Android展示不全

        取消Flatlist的父布局高度设置便可以解决此问题

10、按钮限制圆角后出现毛刺问题

        设置overFlow=‘hidden’即可解决

11、View中的Text文本实现换行只要在需要换行处加一个“{\n}”

        <Text style={{fontSize:12}}>第一行{"\n"}第二行</Text>

猜你喜欢

转载自blog.csdn.net/s349856186/article/details/79277510
今日推荐