debugging React材料-UI- MUI:间距参数应为数字或字符串,但得到[object Object]

a14dhokn  于 2022-11-14  发布在  React
关注(0)|答案(1)|浏览(117)

我有一个一般的MUI核心调试/支持问题,我在这里发布as instructed by the official documentation
在处理大型项目时,我无法确定控制台中出现以下错误消息的原因:
MUI:间距参数应为数字或字符串,但获得[object Object]。
我在官方存储库中发现了这个问题,这表明我设置了一个不应该设置的间距值,但我无法确定确切的位置。注解掉JSX中的所有元素也没有帮助--一个空白的呈现页面仍然会返回错误。
控制台输出没有帮助,因为它没有指向包含错误的文件:

MUI: Expected spacing argument to be a number or a string, got [object Object]. spacing.js:56
    createUnaryUnit spacing.js:56
    spacing createSpacing.js:26
    spacing createSpacing.js:25
    onUpdate jss-plugin-rule-value-function.esm.js:58
    onUpdate jss.esm.js:1337
    updateOne jss.esm.js:983
    update jss.esm.js:959
    update jss.esm.js:1245
    attach makeStyles.js:120
    useStyles makeStyles.js:233
    useSynchronousEffect makeStyles.js:187
    useStyles makeStyles.js:225
    WithStyles withStyles.js:56
    React 14
    js index.js:7
    factory react refresh:6
    Webpack 3

问题:我如何调试这个?理想的答案应该包含一个要检查的东西的列表。我不能提供源代码。

yshpjwxd

yshpjwxd1#

仔细检查控制台输出确实指向

WithStyles withStyles.js:56

我在应用程序根组件的导出行中找到了 withStyles Package 器:这就是为什么删除树中的所有元素不会阻止错误消息出现的原因。
然后,我可以将问题隔离到传递给 withStylesstyles 参数的以下属性:

toolbar: {
    display: "flex",
    alignItems: "center",
    marginTop: theme.spacing,
    justifyContent: "flex-end",
    padding: "0 8px",
    ...theme.mixins.toolbar
  },

导致此问题的特定样式条目是:

marginTop: theme.spacing,
  • theme.spacing* 是一个函数,调用时应使用括号。

下面回答了我的问题:

  • 通过展开错误消息检查控制台输出
  • 检查调用堆栈中的每个条目,找出错误可能出现在何处的线索,并将每个调用与代码中使用的框架功能相对应

相关问题