【问题标题】:Material-UI React TypeScript Component Styles Error w/ Default Theme带有默认主题的 Material-UI React TypeScript 组件样式错误
【发布时间】:2020-01-24 23:53:10
【问题描述】:

我正在将 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>
  );
}

我想使用默认主题。我错过了什么吗?

【问题讨论】:

  • 我从文档和示例中不完全清楚的是,如果有的话,您必须做什么才能使所有组件都可以使用默认主题。

标签: reactjs typescript material-ui


【解决方案1】:

尝试传递一个空对象:

const classes = useStyles({});

【讨论】:

  • 不幸的是,这会导致“TypeError:spacing is not a function”错误。
  • 我复制并粘贴了您的代码,并将 {} 传递给了 useStyles 函数,如答案中所示。没有错误发生。
【解决方案2】:

尝试使用以下组件:

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

XXX = 其他组件

注意我的依赖是:

  • 依赖:"@material-ui/core": "^4.9.14"
  • 开发依赖:"@types/material-ui": "^0.21.7"

别忘了在你的项目中导入@types/material-uidevDependencies。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-30
    • 2021-11-14
    • 2020-05-01
    相关资源
    最近更新 更多