reactjs - 找不到名称“类”。TS2304?尝试使用 React + Typescript 进行样式设置时
问题描述
我目前正在尝试将自己的样式添加到我的网站中,当我尝试添加自定义样式时遇到了这个问题className
。
找不到名称“类”。TS2304
到目前为止,这是我的代码:
import React from 'react';
import Grid from "@material-ui/core/Grid";
import { makeStyles } from "@material-ui/core/styles";
import { withStyles } from '@material-ui/core/styles';
const useStyles = makeStyles({
aboutSection: {
color:"red",
}
});
class About extends React.Component {
render() {
return (
<div className='about-body'>
<Grid container className ={classes.aboutSection} spacing={4} justify='center'>
<Grid item sm={12}>
<br></br>
<h1>A Little More About Me!</h1>
</Grid>
<Grid item xs={12}>
More about Me
</Grid>
</Grid>
</div>
);
}
}
export default About;
解决方案
classes
是一个普通的 javascript 变量,你希望它来自哪里?在给定的代码中,它似乎不存在。
我认为你的意思是useStyles
在你的组件中使用钩子。大概是这样的:
const classes = useStyles();
问题是,您的组件是一个类,并且类组件中不允许使用挂钩。您可以将其转换为功能组件,或使用withStyles
HOC注入样式。
以下是它作为功能组件的外观:
import React from 'react';
import Grid from "@material-ui/core/Grid";
import { makeStyles } from "@material-ui/core/styles";
const useStyles = makeStyles({
aboutSection: {
color:"red",
}
});
const About = (props) {
const classes = useStyles();
return (
<div className='about-body'>
<Grid container className ={classes.aboutSection} spacing={4} justify='center'>
<Grid item sm={12}>
<br></br>
<h1>A Little More About Me!</h1>
</Grid>
<Grid item xs={12}>
More about Me
</Grid>
</Grid>
</div>
);
}
export default About;
以下是withStyles
HOC 的外观:
import React from 'react';
import Grid from "@material-ui/core/Grid";
import { withStyles } from '@material-ui/core/styles';
const styles = {
aboutSection: {
color:"red",
}
};
class About extends React.Component {
render() {
const { classes } = props;
return (
<div className='about-body'>
<Grid container className ={classes.aboutSection} spacing={4} justify='center'>
<Grid item sm={12}>
<br></br>
<h1>A Little More About Me!</h1>
</Grid>
<Grid item xs={12}>
More about Me
</Grid>
</Grid>
</div>
);
}
}
export default withStyles(styles)(About);
推荐阅读
- magento - 在自定义模块 Magento2.4.0 中出现奇怪的错误
- machine-learning - 我们应该在训练/测试拆分之前还是之后预处理文本数据?
- html - Css 文件未在浏览器中加载
- python - Python中的重新加权(rake)
- oracle - 更新视图架构
- php - 在codeigniter中从数据库中获取json存储数据
- angular - 登录后如何在没有 location.reload() 的情况下使用角度路由器重新加载组件?
- postgresql - Helm Postgres 密码认证失败
- python - 在模块中转换 python 脚本
- swiftui - 如何利用模型对象中的 @Binding var 状态更改?