React MUI v4自定义AppBar尺寸报Cannot find name 'classes' TS2304如何解决
错误原因及修复方案
TS2304报错的核心是你没有正确调用MUI v4的makeStyles能力生成可使用的classes对象,同时混淆了行内样式style和类名绑定className的用法,按以下步骤修改即可:
- 将你定义的
styles对象传入makeStyles,生成自定义样式钩子useStyles - 在
Navbar组件内部调用useStyles(),拿到包含所有样式类名的classes对象 - 给
Toolbar绑定样式时使用className属性,而非style
修改后的完整代码如下:
import React from "react"; import { AppBar, Toolbar, Typography, Box, makeStyles } from '@material-ui/core'; import { Link } from "react-router-dom"; import './Navbar.css' const useStyles = makeStyles({ customizeToolbar: { minHeight: 36 } }); function Navbar(){ const classes = useStyles(); return( <AppBar position='sticky' > <Toolbar variant='dense' className={classes.customizeToolbar} > </Toolbar> </AppBar> ) } export default Navbar;
TypeScript环境下makeStyles会自动推导样式的类型定义,无需额外声明即可直接使用,不会再抛出找不到classes的报错。
内容的提问来源于stack exchange,提问作者LDrof
相关产品推荐
相关产品推荐

