我正在尝试将'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创建的,这是我第一次看到它。
答案 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/