我是一名iOS开发者,现阶段了解到许多公司都要求开发者了解或者熟练使用React Native,所以就了解了一下,所以在此记录一下自己的学习过程,水平较低,还请各位客官谅解。
开发环境配置
你的电脑若未安装Homebrew、Node.js、WatchMan等工具,请参照:
环境配置
安装Homebrew(OS系统上的一个安装包管理器,安装后可以方便后续安装包的安装)
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" ###安装npm 和 Node.js(服务端的JavaScript运行环境)
直接下载安装Node.js,网址:https://nodejs.org/en/download/
安装WatchMan(React修改source文件的一个工具)
brew install watchman
安装Flow(一个JavaScript 的静态类型检查器)
brew install flow
React Native安装
npm install -g react-native-cli
【注】如果在命令执行完毕时报了许多错误,使用如下命令:
sudo npm install -g react-native-cli
创建项目
在终端输入如下命令就可以简单的创建成功(可以cd到自己想要的路径下)
react-native init 项目名称
【注意】由于众所周知的网络原因,需要等待一段时间(具体视网络情况而定)。react-native命令行从npm官方源拖代码时会遇上麻烦,可以将npm仓库源替换为国内镜像:
npm config set registry https://registry.npm.taobao.org
npm config set disturl https://npm.taobao.org/dist
如果在执行 react-native init 项目名称 时,出现如下错误:
Error: EACCES: permission denied, open '/Users/*****/.babel.json'
at Error (native)
at Object.fs.openSync (fs.js:641:18)
at Object.fs.writeFileSync (fs.js:1347:33)
at save (/Users/*****/Desktop/React-Native/HelloWord/node_modules/babel-register/lib/cache.js:48:16)
at _combinedTickCallback (internal/process/next_tick.js:73:7)
at process._tickCallback (internal/process/next_tick.js:104:9)
at Module.runMain (module.js:606:11)
at run (bootstrap_node.js:389:7)
at startup (bootstrap_node.js:149:9)
at bootstrap_node.js:504:3
时,
解决方法
执行命令
sudo chown -R $(whoami) ~/.npm
(如果不可以,使用sudo chmod 777 /Users/xxxx/.babel.json)
然后
重新init工程
创建成功
运行iOS工程后
问题1:#import <React/RCTBundleURLProvider.h> 报错
解决方法一:
打开Mac里面的终端,进入项目所在的文件夹目录;
把项目里面的 node_modules 文件夹删除掉,然后执行 npm install 命令
npm install安装完成后, 执行react-native upgrade命令
解决方法二:
不用管报错,直接编译,编译成功后运行
问题2:如果在工作台上一直显示“[] nw_connection_get_connected_socket_block_invoke 27 >Connection has no conn”错误(每秒更新一次)
解决办法是:
1.Xcode menu -> Product -> Edit Scheme...
- Environment Variables -> Add -> Name: "OS_ACTIVITY_MODE", Value:"disable"
- Run your app again, done!
这样就没问题了
管理React Native库的版本
在开发中,会经常的去控制React Native的版本库,得以适配各种条件下的开发,那该如何查看
控制ReactNative的版本呢?查看本地的React Native的版本命令行输入
react-native --version更新本地的React Native的版本命令行输入
npm update -g react-native-cli查询react-native的npm包最新版本NPM的全称是Node Package Manager ,是一个NodeJS包管理和分发工具,已经成为了非官方的发布Node模块(包)的标准。npm包地址 :https://www.npmjs.com/package/react-native
命令行查询npm info react-native升级或者降级npm包的版本
npm install --save react-native@0.18更新项目templates文件(可选)新的npm包会包含更新在运行react-native init命令生成的一些动态文件,例如init创建项目的时候会生成iOS和Android的子项目,我们可以通过以下的命令进行获取最新的代码命令行查询react-native upgrade
WebStorm设置React Native代码提示** 8.1 从gitHub上下载xml插件git clone >https://github.com/virtoolswebplayer/ReactNative-LiveTemplate
安装 将ReactNative.xml复制到 ~/Library/Preferences/WebStorm10/templates
然后重启 WebStorm