由于createContext不是功能,因此如何确保React的运行版本是最新的

时间:2019-02-20 21:26:10

标签: reactjs react-dnd

我正在尝试将'react-dnd'库与React一起使用,我只是从它在JavaScript文件顶部导入了类DragSource,当我尝试运行它时,它将返回此错误(如果我删除了此导入,代码运行正常,没有其他东西正在使用该类):

TypeError: React.createContext is not a function

据我所知,react 16.3中引入了createContext。

如果我将React.version输出到网页中,则表明我正在运行16.2

在我的package.json文件中,react被特定为^ 16.0.0,因此应更新为最新版本。如果我在package-lock.json中查找,则表示它正在使用最新的16.8.1。

为什么我的运行版本与安装的版本不同,我该如何解决?该应用程序是在一个月前使用create-react-app创建的,这是我第一次看到它。

1 个答案:

答案 0 :(得分:0)

首先运行npm update,然后查看您的package.json版本的react是否更改为16.3或类似版本。如果是这种情况,只需执行npm install并运行该应用即可。 [1]

如果您的版本不这样更新:

1)从项目根目录中删除node_modules

2)在16.3.0上将您的React版本重命名为package.json

3)删除package.lock.json

4)npm install

5)运行应用

————————————————

[1] 更新命令可能会起作用,因为它应该将次要版本从1.2.0升级到1.3.0,或者从1.2更新。 2至1.2.5。但是我发现有时候npm无法解决这个问题。 package.json 只是在进行npm安装时应安装的依赖项列表。

有关 ^ 符号的更多信息:https://flaviocopes.com/npm-semantic-versioning/