reactjs - 如何确保 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 创建的,这是我第一次看到它。
解决方案
首先运行npm update
并查看您package.json
的 react 版本是否更改为 16.3 或类似版本。如果是这种情况,只需执行npm install
并运行该应用程序。[1]
如果您的版本没有以这种方式更新:
node_modules
1)从您的项目根目录中删除
2)将您的反应版本重命名为16.3.0
atpackage.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/
推荐阅读
- matrix - 如何围绕指定轴旋转 X 或旋转 Z 视图矩阵?
- swift - 如何监听 safari 扩展弹出工具栏按钮事件
- javascript - 如何在 JavaScript 中将数组转换为对象数组?
- python - FileNotFoundError: [Errno 2] No such file or directory: 'Test.csv' in VS Code
- node.js - 为什么我的 Node.js 应用程序构建没有以 heroku 结尾?
- xml - 如何使用 fastxml 将 kotlin 数据类转换为 xml?
- java - 有选择地将事件分派给弹出窗口的子项
- python - Plotly Dash:通过更新不同的下拉组件隐藏/显示滑块组件
- mysql - 为什么喜欢查询和 concat 不使用索引?
- runtime - 使用 AspectJ 进行加载时编织