Fork me on GitHub

RN大版本升级 0.41 -> 0.51

目录

前言

本来打算升级的时候RN最新版还是0.51,直到升级实施起来RN已经更新到0.53。

react native部分

修改package.jsonreact,react-native版本

1
2
3
4
"dependencies": {
"react": "^16.3.0-alpha.1",
"react-native": "^0.54.0"
}

根据react native 的changelog 修改不兼容的代码,同时需要注意用到的某些开源组件,是否对新版本兼容。修改不兼容的组件,升级/修改源码/重换组件

react/lib/XXX 已没有

1
2
3
var ReactChildren = require('react/src/ReactChildren');
修改为
React.Children

1
2
3
4
5
var ReactPropTypes = require('react/src/ReactPropTypes');
修改为
import PropTypes from 'prop-types';
PropTypes.XXXX

react-native-fance-html 库修改

1
2
3
4
5
// HTMLStyles.js
// import ReactPropTypeLocations from 'react/lib/ReactPropTypeLocations'
// if (styleProps[key](testStyle, key, '', ReactPropTypeLocations.prop)) {
if (styleProps[key](testStyle, key, '', 'prop')) {
}

ios部分

  • 更新依赖, 修改react,react-native版本.
  • rm -rf node_modules
  • qnpm install
  • pod install --no-repo-update
  • 清理xcode/模拟器缓存
  • 如果确认自己代码没问题,相关依赖也都正确,试试清空 watchman/模拟器/xcode 缓存,清理的时候,关闭npm start,模拟器,xcode

如果 pod install 报错 -bash: /usr/local/bin/pod: /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby: bad interpreter: No such file or directory, 解决方案

谢谢您给我买糖吃~