如何修改material-ui的默认样式?

发布于 2022-09-11 14:38:47 字数 552 浏览 22 评论 0

直接拿了官方demo来使用:https://material-ui.com/demos...

clipboard.png

看到它这里面的根元素固定高度 440px,想换成100%,但是这个test-root-2是使用withStyles后的classes.root返回的,不是死的,我直接设置test-root-2的样式感觉会不好,请问有没有办法设置?

另外,有没有关于 @material-ui/core/styles里面的方法的介绍?官方文档搜不到,这里面应该还有很多方法呀

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

生活了然无味 2022-09-18 14:38:47

额,我知道了,只要修改withStyles第一个参数styles.root的height就行了,原来根本不用管classes.root具体是什么值...

withStyles的作用会把css-in-js形式的js对象转为真正的css,如:

const styles = (theme) => ({
  testhaha: { height: 140 },
  root: { height: 840 },
})

转成css后:

.test1-testhaha-1{
    height: 140px
}
.test1-root-1{
    height: 840px
}

ps. 这里的test1前缀,是可以自定义的,自定义方法在后面

好了,转换之后,样式class名整个不一样了,我要写JSX的,我怎么知道该往JSX里的className="???"填什么?

答案是:withStyles(styles,{name:'test1'})(Connections)中,Connections是下面的class对象,它的构造函数就能接收到经过转换的样式class名,方法:

class Connections extends Component {
  constructor (props) {
      super(props)
      console.log('classes', props.classes) // 下面有写这个打印的内容
  }
  render () {
    const { classes } = this.props

    return (
      <div className={classes.root}>
          <p className={classes.testhaha}></p>
      </div>
    )
  }
}

上面props.classes内容会是:

 {
   testhaha: 'test1-testhaha-1',
   root: 'test1-root-2',
 }
 

相信看到这个打印内容,以及被转换后的css-in-js,就知道它们之间的关联了吧

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文