rn遇过的那些坑

title: rn遇过的那些坑

tags:RN, React Native

  1. react navigation怎么传递参数到下一界面?怎么传递参数到上一界面
  2. 每个界面都要实现navigationOptions的所有细节?
    //不需要!可以定义一个screen的基类,后续所有界面都基于该基类实现
    //或者在TabNavigator等上实现
  3. 为什么每个页面都要在componentDidMount中拦截android回退按钮事件?
    //不需要!可以定义一个screen的基类,后续所有界面都基于该基类实现
  4. 组件之间通信(4-8 链接:http://www.jianshu.com/p/48df06330967)

子组件调用父组件的方法:子组件要拿到父组件的属性,需要通过this.props方法。每次父组件修改了传入的属性,子组件会收到通知,会自动获取新的属性。

父组件调用子组件的方法:在ReactJS中通过ref属性。该属性类似与给组件起名字。父组件可以通过this.ref.xxx来获取到该组件

  1. 创建不定数View,在return方法中不支持for语句
    (1).采用MAP形式
    (2).采用数组的形式

6 ref 属性

7.网络请求加载Loading框注意的地方
Loading 框采用的是IOS原生封装,在RN页面进行网络请求注意延迟200ms左右
this.timer = setTimeout(()=>{this._fetchData();}, 200);
避免Loading 框在上一页面。

8.关于倒计时问题
产品详情页有倒计时功能,但应用切换到后台后,倒计时开始停止工作,这时候需要重新校准时间。所以需要应用的状态
RN中使用APPState来查看应用状态
通过此接口可以获悉应用在当前处于后台还是前台激活的状态,常用方法和应用场景类似于h5的visibilitychange。
注意该接口要最新版本(2.0+)的 react-native 才能调用。
获取到的应用状态常规有:
active:表示应用处于前台运行状态;
background:表示应用处于后台挂起状态;
inactive:表示过度状态,常规不会发生,可以先忽略
我们可以使用 AppState.addEventListener 和 AppState.removeEventListener 方法来监听、移除应用状态的 change 事件。

Contents
  1. 1. tags:RN, React Native
,