首页 > 解决方案 > Material-UI 错误:对象不是 makeStyles 中的函数?

问题描述

错误:

TypeError: Object(...) is not a function
  13 | import { connect } from 'react-redux';
  14 | 
  15 | 
> 16 | const useStyles = makeStyles(theme => ({
  17 |     ...theme
  18 | }));
  19 | 

代码:

const useStyles = makeStyles(theme => ({
    ...theme
}));

为什么会出现上述错误?
一切正常,但突然我得到了那个错误,可能是在我更新 npm 之后,npm -g update但我不确定。

有人可以帮忙吗?

编辑:这就是我使用 useStyles 的方式:

const classes = useStyles();

然后我使用这些类来设置我的元素的样式,如下所示:

<Button className={classes.button} />

classes.button从全局主题中获取按钮规则并使用它来设置按钮样式

标签: javascriptreactjsmaterial-ui

解决方案


为了消除系统地提供主题的需要,
将默认Material-UI主题应用于重新导出的makeStyles模块。

// Re-export with a default theme
import { makeStyles } from '@material-ui/core/styles';

// Original module with no default theme
import { makeStyles } from '@material-ui/styles';

但也要小心“错误”的进口。

// for example, this is wrong
import { makeStyles } from '@material-ui/core/styles/makeStyles';

就像这里的@Code Eagle一样。调试此类错误可能会很痛苦:)这是Material-UI basics
中有关此内容的好读物。


推荐阅读