ChrisP
ChrisP

Reputation: 10116

Material-UI React TypeScript Component Styles Error w/ Default Theme

I'm integrating Material-UI (v4.4.3) into a React (v16.9.2) TypeScript (v3.6.3) website. Using the sample AppBar component example https://material-ui.com/components/app-bar/ and the TypeScript Guide https://material-ui.com/guides/typescript/#typescript I have the following functional component.

However, I'm getting a TS error for useStyles() on this line

const classes = useStyles();

(TS): Expected one argument, but got 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>
  );
}

I want to use the default theme. Am I missing something?

Upvotes: 3

Views: 1695

Answers (2)

anztrax
anztrax

Reputation: 795

try using components from :

import AppBar from "@material-ui/core/AppBar"
import XXX from "@material-ui/core/xxx"

XXX = other components

notes my dependencies are:

  • dependencies : "@material-ui/core": "^4.9.14"
  • devDependencies : "@types/material-ui": "^0.21.7"

don't forgot to import @types/material-ui devDependencies in your project.

Upvotes: 1

Kevin
Kevin

Reputation: 1319

Try to pass an empty object:

const classes = useStyles({});

Upvotes: 2

Related Questions