首页 > 解决方案 > 如何确保 React 的运行版本是最新的,因为 createContext 不是函数

问题描述

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

TypeError: React.createContext is not a function

据我了解,createContext 是在 react 16.3 中引入的。

如果我将 React.version 输出到网页中,它会告诉我我正在运行 16.2

在我的 package.json 文件中,react 被指定为 ^16.0.0 所以它应该更新到最新的。如果我查看 package-lock.json 说它使用的是最新的 16.8.1。

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

标签: reactjsreact-dnd

解决方案


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

如果您的版本没有以这种方式更新:

node_modules1)从您的项目根目录中删除

2)将您的反应版本重命名为16.3.0atpackage.json

3) 删除package.lock.json

4)npm install

5) 运行应用程序

—————————————————</p>

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

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


推荐阅读