【发布时间】:2021-09-24 09:33:44
【问题描述】:
根据标题,我在使用 React 实现 Material UI 时收到以下错误消息。
React Hook "useStyles" 在函数 "appBar" 中被调用,它既不是 React 函数组件也不是自定义 React Hook 函数
我已经查看了 hooks 的规则 (https://reactjs.org/docs/hooks-rules.html),但我不确定我错过了什么。我们将不胜感激。
这是我的源代码:
import React from 'react';
import { createStyles, makeStyles, Theme } 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((theme: Theme) =>
createStyles({
root: {
flexGrow: 1,
},
menuButton: {
marginRight: theme.spacing(2),
},
title: {
flexGrow: 1,
},
}),
);
export default function appBar() {
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}>
News
</Typography>
<Button color="inherit">Login</Button>
</Toolbar>
</AppBar>
</div>
);
}
【问题讨论】:
-
尝试将
appBar重命名为AppBar,或PascalCase 中的其他名称。 -
组件必须以 Pascal 大小写命名。
标签: javascript reactjs