我想将项目升级到React 16,因为我有一些依赖它的依赖项。但是,我还拖尾了一些非常旧的React软件包,我还没有时间升级到支持React 16的新版本。现在我需要花一些时间。
我的项目资源已经跟上了React的新版本,但是我想知道是否有任何不可能解决的旧依赖项会导致它们被React 16彻底破坏?
答案 0 :(得分:9)
在suggested comment之后,在导入旧的依赖项之前通过导入类似下面的模块的东西来修补React应该可以工作:
import React from 'react'
import PropTypes from 'prop-types'
import createClass from 'create-react-class'
Object.assign(React, {
PropTypes,
createClass
})
对于在React 16之前收到警告的项目,这些项目将得到解决。
答案 1 :(得分:1)
因此,首先,将具有旧依赖项的项目升级到React 16将会在现在或不久的将来中断,除非您不升级项目中的其他依赖项。但是,我可以建议你一种可以绕过很长一段时间的方法。
{
"name": "project-name",
"version": "0.1.0",
"private": true,
"dependencies": {
"react": "^16.0.0",
"react-dom": "^16.0.0",
"react-scripts": "1.0.14"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test --env=jsdom",
"eject": "react-scripts eject"
}
}
使用此给定的依赖关系更新您的react的依赖关系,并删除node_modules文件夹,然后再次在package.json上触发npm install,以安装反应运行,测试和构建的新包。