-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
Description
版本升级的带来的成本还是挺大的,特别是iOS 和 android上。纯前端大部分是根据你页面数量,来手动修改,春劳力成本输出,大部分的版本兼容性问题,都会在手机 或者流浪器的console中进行提示,根据提示还是很好进行定位。
这次版本升级,前前后后耗费将近一周的时间把。
对于版本升级,现在0.40以后大部分都是修补漏洞,对于没有太大需求,是没必要进行无谓升级,当然,如果你刚开始使用 RN , 还是推荐实现当前最新版本。版本升级,当你觉得有必要的时候再进行,不影响工程项目的前提先,没必要修复,那些升级修复的功能,你可能没用到,也可能永远不会用到。
安装 react-native-git-upgrade
$ npm install -g react-native-git-upgrade
react-native-git-upgrade提供了豪华的一条龙自动合并更新流程,主要包含两个服务:
+ 首先它会利用Git工具计算新旧版本文件间的差异并生成补丁
+ 然后在用户的项目文件上应用补丁
运行更新命令
$ react-native-git-upgrade
这样会直接把react native升级到最新版本
或者是:
$ react-native-git-upgrade X.Y.Z
这样把react native升级到指定的X.Y.Z版本
运行结果
手动修改
修改 package.json
package.json 文件又不会修改你的依赖版本,你还得手动更改,不然你重新下载依赖又照样报错了
修改 React.prototype
npm install --save prop-types
React.PropTypes
// After (15.5)
import React from 'react';
import PropTypes from 'prop-types';
class Component extends React.Component {
render() {
return <div>{this.props.text}</div>;
}
}
Component.propTypes = {
text: PropTypes.string.isRequired,
};
修改 React.creatClass
React.createClass
// After (15.5)
var createReactClass = require('create-react-class');
var Component = createReactClass({
mixins: [MixinA],
render() {
return <Child />;
}
});
NetInfo
网络监听的事件名称修改: change -- > connectionChange
NetInfo
.isConnected
.addEventListener('connectionChange', this._handleConnectionInfoChange.bind(this));
TextInput selectionColor
报错 Error while updating property 'selectionColor' of a view managed by: AndroidTextInput
一开始以为是 react-native-elements 版本问题,升级到最新后,还是不行
看了这个issue后,直接将selectionColor去掉了。有其他办法的,可以帮忙贴出来