优点:

1、写 UI 快,跟写 HTML 差不多,flex 布局写起来很爽,而且跨平台;
2、调试方便,command + R 直接刷新 Simulator,不用像 Xcode 等待编译;
3、体验好于 Hybrid App,接近 Native App;
4、热更新

缺点:

1、很多不支持,像支付、分享等还没有对应的 RN 方案,需要分别调用 iOS、Android;
2、iOS、Android 部分组件中还存在差异,坑需要慢慢探索;
3、Android 中开启调试模式卡到爆

1、<TextInput> iOS 中正常,Android 中会自带一条下划线,需要加一句
underlineColorAndroid="transparent"
2、<Text> 需要设置高度,iOS 中不设置会自适应展示,Android 中不设置显示不全
3、lineHeight 在 Android 中不能设置为小数。要想一套代码适应 iOS 和 Android 的话,可以这样写:
flexDirection: 'row',
alignItems: 'center',
justifyContent: 'center',
4、zIndex 在 Android 中无效,后渲染的组件在上面。
5、没有 js 中的 show/hide 方法,需要根据属性判断是否渲染,比如:
{
this.state.username && this.state.password ? (
// 存在 username 和 password 时
<View style={styles.login}>
<Text style={styles.loginText}>已登陆</Text>
</View>
) : (
<TouchableOpacity style={styles.login} onPress={this._onPressLoginButton.bind(this)}>
<View>
<Text style={styles.loginText}>登陆</Text>
</View>
</TouchableOpacity>
)
}
6、<ListView> 通过网络获取数据的 ListView 不能直接渲染,因为渲染时数据还没回来,RN 会因空数据报红
{
this.state.data != null ? (
<ListView style={styles.listView}
dataSource={this.data}
renderRow={this.renderRow.bind(this)}/>
) : (
null
)
}
7、RN、OC 交互,callback 不能多于一个,否则 RN 会崩溃
8、.获取屏幕的宽和高

使用Dimensions

var Dimensions = require('Dimensions');
var {width,height} = Dimensions.get('window');

使用:

leftViewStyle:{
width: width / ,
},
9、根据不同的平台设置不同的效果

先引入Platform:

import {
AppRegistry,
StyleSheet,
Text,
View,
ListView,
Image,
TouchableOpacity,
Platform
} from 'react-native';

使用:

iconStyle:{
width: Platform.OS === 'ios' ? : ,
height: Platform.OS === 'ios' ? :
},
10、Android去除TextInput下方的横线.
在TextInput中使用underlineColorAndroid = {'transparent'}该属性即可.
11、mac显示隐藏文件
// 终端运行下面的命令即可:
defaults write com.apple.finder AppleShowAllFiles -boolean true ; killall Finder
12、React-Native中禁用Navigator手势返回
 configureScene(route, routeStack) {
// return Navigator.SceneConfigs.PushFromRight;
var conf = Navigator.SceneConfigs.HorizontalSwipeJump;
conf.gestures = null;5
return conf;
}
13、React-Native中拨打电话
import {Linking} from 'react-native';
function callPhone(){
  return Linking.openURL('tel:10086')
}
14、Android下,Image控件不支持gif的解决方案
// 在android/app/build.gradle中的dependencies字段中添加以下内容
compile 'com.facebook.fresco:animated-gif:0.13.0'

结语: 有新遇到的问题会加进来,有问题欢迎留言提出

React Native 开发日常、常见问题总结及解决的更多相关文章

  1. React Native开发中自动打包脚本

    React Native开发中自动打包脚本 在日常的RN开发中,我们避免不了需要将我们编写的代码编译成安装包,然后生成二维码,供需要测试的人员扫描下载.但是对于非原生的开发人员来说,可能不知如何使用X ...

  2. 搭建基本的React Native开发环境

    步骤如下: 1.安装HomeBrew,命令如下: 在终端输入命令:$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Home ...

  3. React Native 开发环境安装和配置使用报错: -bash: react-native: command not found

    [React  Native 开发环境安装和配置:-bash: react-native: command not found 报错: 前提是安装homebrew,node.js ,npm ,watc ...

  4. React Native开发入门

    目录: 一.前言 二.什么是React Native 三.开发环境搭建 四.预备知识 五.最简单的React Native小程序 六.总结 七.参考资料   一.前言 虽然只是简单的了解了一下Reac ...

  5. React Native开发技术周报2

    (1).资讯 1.React Native 0.22_rc版本发布 添加了热自动重载功能 (2).技术文章 1.用 React Native 设计的第一个 iOS 应用 我们想为用户设计一款移动端的应 ...

  6. React Native开发技术周报1

    (一).资讯 1.React Native 0.21版本发布,最新版本功能特点,修复的Bug可以看一下已翻译 重要:如果升级 Android 项目到这个版本一定要读! 我们简化了 Android 应用 ...

  7. DECO 一个REACT NAtive 开发IDE工具

    DECO 一个REACT NAtive 开发IDE工具. 目前只支持 OS,NO WINDOWS https://www.decosoftware.com/ 一个方便的快速 ERXPRESS 教程:h ...

  8. React Native 开发之 (02) 用Sublime 3作为React Native的开发IDE

    Sublime Text是一个代码编辑器.也是HTML和散文先进的文本编辑器.漂亮的用户界面和非凡的功能,例如:迷你地图,多选择Python插件,代码段等等.完全可自定义键绑定,菜单和工具栏等等.漂亮 ...

  9. React Native 开发笔记

    ReactNativeDemo 学习ReactNative开发,搭建ReactNative第一个项目 React Native 开发笔记 1.安装Homebrew $ /usr/bin/ruby -e ...

随机推荐

  1. selenium.common.exceptions.WebDriverException: Message: unknown Error: cannot find Chrome binary

    使用Chrome浏览器时,经常会遇到以下报错:浏览器没有调用起来 selenium.common.exceptions.WebDriverException: Message: unknown Err ...

  2. nginx----------nginx日志详细分解

    1.客户端(用户)IP地址.如:上例中的 47.52.45.228 2.访问时间.如:上例中的 [03/Jan/2013:21:17:20 -0600] 3.请求方式(GET或者POST等).如:上例 ...

  3. log4j:WARN No appenders could be found for logger 解决方案

    我们在使用Log4j的时候,总是出现: log4j:WARN No appenders could be found for logger (org.apache.ibatis.logging.Log ...

  4. 2014西安赛区C题

    将A[i]同他后面比他小的建边,然后求最大密度子图 #include <iostream> #include <algorithm> #include <string.h ...

  5. myBatis学习之路1-基本功能实现

    myBatis也是一个持久型框架,相较于hibernate来说,算是轻量级的. 1.配置mybatis环境 相关jar下载地址:mybatis+mysalJAR包 2.新建一个java project ...

  6. BIOS备忘录之IIC(touchpad)设备

    简述BIOS中对IIC device的支持,以touchpad为例. 信息收集 收集平台的硬件信息: 1. IIC controller number(PCH一般包含多个controller,我们使用 ...

  7. WINDBG常用方法

    前言:windbg大家都很熟悉,它是做windows系统客户端测试的QA人员很应该掌握的定位程序崩溃原因的工具, 网上也有很多资料,但是真正适合QA阅读和实用的资料不多,我把我认为最重要最应该掌握的结 ...

  8. lvs 进阶 第二章

    linux virtual server 一 . lvs lvs 对数据进行四层转发,根据目标地址和目标端口对请求数据进行转发. lvs 包含ipvsadm 和ipvs: ipvsadm :用户空间的 ...

  9. redis.clients.jedis.exceptions.JedisConnectionException: java.net.SocketException: 断开的管道 (Write failed)

    昨晚,包发到测试环境中,出现redis.clients.jedis.exceptions.JedisConnectionException: java.net.SocketException: 断开的 ...

  10. 超简单的SpringBoot整合mybatis

      1. 创建项目结构 2. 编写application.yml/application.properties配置文件 3. 启动类开启映射包扫描 4. 接口测试 创建项目结构     导入依赖 &l ...