React Native的更新策略是兩個(gè)星期迭代一個(gè)新版本,使用的React Natvie沒(méi)有多長(zhǎng)時(shí)間就需要升到最新版本了域携,這里介紹下如何升級(jí)到版本0.25.1以及其以上镰官。
React Native 25衅谷,一個(gè)顯著的變化是import React的時(shí)候不再?gòu)?code>react-native中導(dǎo)入蜈彼,而是從react
中導(dǎo)入案狠。所以首先需要添加react
的依賴。
使用React
首先要添加React
的依賴延都,如果把react-natie的版本直接升高到當(dāng)前版本,比如:"react-native": "0.31.0"
睛竣。
使用npm install
安裝依賴包的時(shí)候晰房,會(huì)提示錯(cuò)誤:
npm WARN react-native@0.31.0 requires a peer of react@~15.2.1 but none was installed.
就需要我們添加對(duì)于React
的依賴,可以使用命令添加React
的依賴:
npm install -save react@~15.2.1
也可以在package.json
中添加依賴:
{
"name": "rn310",
"version": "0.0.1",
"private": true,
"scripts": {
"start": "node node_modules/react-native/local-cli/cli.js start"
},
"dependencies": {
"react": "^15.2.1",
"react-native": "0.31.0"
}
}
在運(yùn)行npm install
就可以自動(dòng)下載依賴了。
import React from 'react'
React Native 25之后射沟,除了React不再?gòu)?code>react-native中引入之外殊者,還包括Component,PropTypes,Children等...
這里要注意,舊版本的React是從react-native
中import的。
如果升級(jí)完依賴之后躏惋,直接運(yùn)行項(xiàng)目之后會(huì)得到一個(gè)報(bào)錯(cuò)信息:
Seems you're trying to access 'ReactNative.Component' from the 'react-native' pakeage.
Perhaps you meant to access 'React.Component' from the 'React' package instead?
For example, instead of :
import React, { Component, View } from 'react-native';
you should now:
import React, { Component } from 'react';
import { View } from 'react-native';
.....
提示的內(nèi)容就是告訴我們需要把Component,React等從包react
中引入,不能再?gòu)?code>react-native中引入幽污。
如果要更新引入嚷辅,基本上要修改所有的文件簿姨,還好我們從更新說(shuō)明中可以看到有工具來(lái)做這個(gè)事情。
codemod-RN24-to-RN25是一個(gè)升級(jí)項(xiàng)目文件支持React Native 25
的工具簸搞,更改文件的import
扁位,讓需要引入react
的文件能夠正確的import
。
使用方法:
-
安裝
jscodeshift
npm install -g jscodeshift
clone項(xiàng)目,
git clone git@github.com:sibeliusseraphini/codemod-RN24-to-RN25.git
- copy transform.js
cd codemod-RN24-to-RN25
cp transform.jsYOUR_PROJECT_PATH
- 運(yùn)行命令轉(zhuǎn)換文件
cd
YOUR_PROJECT_PATH
jscodeshift transform.js
等待運(yùn)行完成之后可以看到React
以及Component
等都能被正確的引用到react
包下趁俊。