【问题标题】:material ui styling not applying材质 ui 样式不适用
【发布时间】:2020-09-21 14:21:14
【问题描述】:

由于某种原因,我的材质 ui 样式不适用于我的 html 元素?知道为什么吗?我没有应用于此页面的其他样式

import React, { Component } from 'react';
import LoginForm from '../components/form/loginForm';
import { makeStyles } from '@material-ui/core';

const classes = makeStyles( (theme) => ({
  root: {
    paddingTop: theme.spacing(8),
    backgroundColor: "white"
  },
}) )

class Login extends Component {
  render() {
    return(
      <div className = {classes.root}>
        <LoginForm/>
      </div>
    );
  }
}
export default Login;

【问题讨论】:

    标签: reactjs material-ui styles


    【解决方案1】:

    在你的情况下,如果你想为你的类组件设置样式,你应该使用withStyles
    试试这个:

    import React, { Component } from 'react';
    import LoginForm from '../components/form/loginForm';
    import { withStyles } from '@material-ui/core/styles';
    
    const useStyles = (theme) => ({
      root: {
        paddingTop: theme.spacing(8),
        backgroundColor: "white"
      },
    })
    
    class Login extends Component {
      render() {
        const { classes } = this.props
        return(
          <div className = {classes.root}>
            <LoginForm/>
          </div>
        );
      }
    }
    export default withStyles(useStyles)(Login);

    【讨论】:

    • 如果我已经在课堂上使用 react-redux 连接函数,我将如何构建 withstyles 调用?
    • @Tamjid 你可以使用export default connect(mapStateToProps)((withStyles(useStyles)(Login)))
    【解决方案2】:

    makeStyles 返回一个要在组件中使用的反应钩子。 Hooks 也只能在函数式组件中使用,因此您需要将 Login 转换为函数式组件。

    import React, { Component } from 'react';
    import LoginForm from '../components/form/loginForm';
    import { makeStyles } from '@material-ui/core';
    
    const useStyles = makeStyles(theme => ({
      root: {
        paddingTop: theme.spacing(8),
        backgroundColor: "lightblue"
      }
    }));
    
    const Login = props => {
      const classes = useStyles();
    
      return(
        <div className={classes.root}>
          <LoginForm/>
        </div>
      );
    }
    export default Login;
    

    【讨论】:

    • 当我尝试初始化 const 类时出现以下错误:解析错误意外令牌
    • @Tamjid 抱歉,我没有注意到您正在尝试将makeStyles 与基于类的组件一起使用。由于它返回一个反应钩子,它只与功能组件兼容。我更新了我的答案并添加了一个代码框。
    猜你喜欢
    • 2022-07-19
    • 2019-10-09
    • 1970-01-01
    • 2018-10-08
    • 2019-06-02
    • 1970-01-01
    • 2020-05-07
    • 2020-05-02
    • 1970-01-01
    相关资源
    最近更新 更多