优点:

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. MongoDB "$" 字符 下标位置

    我们可以修改列表里面元素的名字 例如: 修改age=34的数据,hobby里面的"足球"改为"网球" }) { "_id" : Object ...

  2. Django进阶之QuerySet和中介模型

    QuerySet QuerySet是查询集,就是传到服务器上的url里面的查询内容.其形态类似于Python的列表,列表中的元素是QuerySet对象.支持大部分列表的内置方法. 可切片 QueryS ...

  3. vue router相关用法

    router.push(location) 想要导航到不同的 URL,则使用 router.push 方法.这个方法会向 history 栈添加一个新的记录,所以,当用户点击浏览器后退按钮时,则回到之 ...

  4. 把spring boot发布成window Service

    一:下载Winsw, 把下载后的文件名改为你的应用如doctor.exe 二:添加xml <service> <id>doctor-api-service</id> ...

  5. Git 在 windows 上面的安装

    参考博客: https://blog.csdn.net/xiezhongyuan07/article/details/79411299 将该作者的文章搬过来, 大家可以直接看上面的原文章. 下面是拷贝 ...

  6. 运行pytorch代码遇到的error解决办法

    1.no CUDA-capable device is detected 首先考虑的是cuda的驱动问题,查看gpu显示是否正常,然后更新最新的cuda驱动: 第二个考虑的是cuda设备的默认参数是否 ...

  7. 退出unity运行

    public void GetExit()//退出运行 { #if UNITY_EDITOR UnityEditor.EditorApplication.isPlaying = false;//用于退 ...

  8. Flutter从零到∞学习笔记

    有状态widget:StatefulWidget和无状态widget:StatelessWidget 前者不需要实现Widget build(BuildContext context). 具体的选择取 ...

  9. git 分支命名规范

    为规范开发,保持代码提交记录以及 git 分支结构清晰,方便后续维护,现规范 git 的相关操作. 主要规范两点: git 分支命名规范 git 提交记录规范 1. git 分支命名规范 git 分支 ...

  10. json转数组

    - (NSDictionary *)dataArrayFromJson { NSString *filePath = [[NSBundle mainBundle] pathForResource:@& ...