React Native的更新策略是兩個星期迭代一個新版本,使用的React Natvie沒有多長時間就需要升到最新版本了,這里介紹下如何升級到版本0.25.1以及其以上。
React Native 25,一個顯著的變化是import React的時候不再從react-native中導入,而是從react中導入。所以首先需要添加react的依賴。
使用React
首先要添加React的依賴,如果把react-natie的版本直接升高到當前版本,比如:"react-native": "0.31.0"。
使用npm install 安裝依賴包的時候,會提示錯誤:
npm WARN react-native@0.31.0 requires a peer of react@~15.2.1 but none was installed.
就需要我們添加對于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"
}
}
在運行npm install就可以自動下載依賴了。
import React from 'react'
React Native 25之后,除了React不再從react-native中引入之外,還包括Component,PropTypes,Children等...
這里要注意,舊版本的React是從react-native中import的。
如果升級完依賴之后,直接運行項目之后會得到一個報錯信息:
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';
.....

提示的內容就是告訴我們需要把Component,React等從包react中引入,不能再從react-native中引入。
如果要更新引入,基本上要修改所有的文件,還好我們從更新說明中可以看到有工具來做這個事情。
codemod-RN24-to-RN25是一個升級項目文件支持React Native 25的工具,更改文件的import,讓需要引入react的文件能夠正確的import。
使用方法:
-
安裝
jscodeshiftnpm install -g jscodeshift
clone項目,
git clone git@github.com:sibeliusseraphini/codemod-RN24-to-RN25.git
- copy transform.js
cd codemod-RN24-to-RN25
cp transform.jsYOUR_PROJECT_PATH
- 運行命令轉換文件
cd
YOUR_PROJECT_PATH
jscodeshift transform.js
等待運行完成之后可以看到React以及Component等都能被正確的引用到react包下。