15.2.1版本分割线 CHANGELOG

Remove & dumped

  • PropTypes    -> prop-types
  • createClass    -> create-react-class
  • refs

参考 https://reactjs.org/blog/2017/04/07/react-v15.5.0.html

和 https://reactjs.org/blog/2017/06/13/react-v15.6.0.html

和 https://github.com/facebook/react/blob/master/CHANGELOG.md#breaking-changes

梳理完这些变更(15.2.1->16.8.6)之后,明确如果react升级主要影响主要下面内容

  1. 废弃React.PropTypes
  2. 废弃旧的ES5写法
  3. ReactDOM.render在生命周期中调用时候的返回值为null
  4. 废弃refs。使用新的ref方法

方案:

  1. 使用import { PropTypes } from ‘prop-types’
  2. 使用ES6 class语法,非用不可的话可以使用 import { createClass } from ‘create-react-class’
  3. 确认没有在生命周期中使用ReactDOM.render()
  4. 修改替换旧的this.refs.xxx使用方式为回调函数或者React.creatRef()

升级指南

https://reactjs.org/blog/2017/04/07/react-v15.5.0.html#migrating-from-react.proptypes

通过脚手架自动替换js里面的PropTypes引用已经createClass方式

这些都是小问题。比较大的问题是新的第三方包,如果要对这些版本一一核对,短时间会陷入深渊的。

所以考虑使用patch的方式,因为归纳之后,就是迁移(不是删除不管)了两个东西嘛,加上来就好了

然后在入口加载一下。

另外就是把refs使用方式换掉旧ok了。