Skip to content

react native 升级 0.43 --> 0.48 #6

@lixingdecai

Description

@lixingdecai

版本升级的带来的成本还是挺大的,特别是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版本

运行结果

image

手动修改

修改 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
image

一开始以为是 react-native-elements 版本问题,升级到最新后,还是不行
看了这个issue后,直接将selectionColor去掉了。有其他办法的,可以帮忙贴出来

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions