从Material-UI v3迁移到v4后,我仍然遇到以下错误。项目已成功编译,但是在检查浏览器控制台时会在运行时显示此错误。什么都没有渲染,只有白屏,并且控制台上出现此错误。
Uncaught Error: You are calling withTheme(Component) with an undefined component.
You may have forgotten to import it.
at withTheme (withTheme.js:14)
at Module../node_modules/material-ui-pickers/dist/material-ui-pickers.esm.js (material-ui-pickers.esm.js:3661)
at __webpack_require__ (bootstrap:724)
at fn (bootstrap:101)
at Object../node_modules/@jsonforms/material-renderers/lib/controls/MaterialDateControl.js (MaterialDateControl.js:63)
at __webpack_require__ (bootstrap:724)
at fn (bootstrap:101)
at Object../node_modules/@jsonforms/material-renderers/lib/controls/index.js (index.js:43)
at __webpack_require__ (bootstrap:724)
at fn (bootstrap:101)
更新的软件包:
"dependencies": {
"@material-ui/core": "^4.1.1", // old version: 3.1.1
"@material-ui/icons": "^4.2.0", // old version: 3.0.1
"@material-ui/styles": "^4.3.3", // new
"date-fns": "^1.29.0", // old version: 1.29.0
"react-jss": "^8.6.1", // removed, according to migration guide, it's nt needed anymore.
}
答案 0 :(得分:1)
对我来说,您似乎要传递给throw new Error(yourMsgHere)
函数的组件不存在,您在创建之前就对其进行了引用,却忘记了导入该组件,而该组件稍后将传递给{{ 1}}或您有拼写错误。
检入您要在其中调用函数withTheme
的文件,并仔细检查该文件中是否定义了要传递的内容...
在不观看称为withTheme
的代码的情况下,我将竭尽所能
答案 1 :(得分:-1)
从错误中可以看出,您可能正在使用material-ui-pickers。
该库已迁移到@material-ui/pickers
这可能就是为什么您得到此错误。
尝试从package.json中删除material-ui-pickers,然后安装新库。
另外,请遵循migration guide