带有默认主题的Material-UI React TypeScript组件样式错误

时间:2019-09-24 19:59:14

标签: reactjs typescript material-ui

我正在将Material-UI(v4.4.3)集成到React(v16.9.2)TypeScript(v3.6.3)网站中。使用示例AppBar组件示例https://material-ui.com/components/app-bar/和TypeScript指南https://material-ui.com/guides/typescript/#typescript,我具有以下功能组件。

但是,我在这行上收到 useStyles()的TS错误

const classes = useStyles();

(TS):预期有一个参数,但为0。

import * as React from 'react';

import { createStyles, Theme, makeStyles } from '@material-ui/core/styles';
import AppBar from '@material-ui/core/AppBar';
import Toolbar from '@material-ui/core/Toolbar';
import Typography from '@material-ui/core/Typography';
import Button from '@material-ui/core/Button';
import IconButton from '@material-ui/core/IconButton';
import MenuIcon from '@material-ui/icons/Menu';

const useStyles = makeStyles(({ spacing }: Theme) =>
  createStyles({
    root: {
      flexGrow: 1,
    },
    menuButton: {
      marginRight: spacing(2),
    },
    title: {
      flexGrow: 1,
    },
  }),
);

export default function ButtonAppBar() {
  const classes = useStyles();

  return (
    <div className={classes.root}>
      <AppBar position="static">
        <Toolbar>
          <IconButton edge="start" className={classes.menuButton} color="inherit" aria-label="menu">
            <MenuIcon />
          </IconButton>
          <Typography variant="h6" className={classes.title}>
            MSC
          </Typography>
          <Button color="inherit">Login</Button>
          )}
        </Toolbar>
      </AppBar>
    </div>
  );
}

我想使用默认主题。我想念什么吗?

2 个答案:

答案 0 :(得分:1)

尝试传递一个空对象:

const classes = useStyles({});

答案 1 :(得分:0)

尝试使用:

中的组件
import AppBar from "@material-ui/core/AppBar"
import XXX from "@material-ui/core/xxx"

XXX =其他组件

请注意,我的依赖项是:

  • 依赖关系:"@material-ui/core": "^4.9.14"
  • devDependencies:"@types/material-ui": "^0.21.7"

不要忘记在项目中导入@types/material-ui devDependencies。