material-ui - 如何从组件中访问主题调色板?

标签 material-ui

我正在尝试构建一个呈现 div 的组件显示错误。

function ErrorDiv(props) {
  return (
    <Card>
      <Typography>{props.message}</Typography>
    </Card>
  );
}

我想为 <Card> 设置样式使得背景颜色为 palette.error.main , 和 <Typography>使字体颜色为白色。

但是,我不确定如何访问主题颜色。有没有palette暴露的变量?或者我应该在我的主题创建模块中将单个颜色导出为字符串,然后导入颜色以供在这里使用?

最佳答案

以下是有关此文档的链接

  • CSS in JS
  • Accessing the Theme in a Component

  • 这是使用 withStyles 的示例:

    import { withStyles } from '@material-ui/core/styles'
    
    const styles = theme => ({
      card: {
        background: theme.palette.error.main,
        color: '#fff'
      }
    })
    
    function ErrorCard({ classes }) {
      return (
        <div>
          <Card className={classes.card}>
            <Typography variant="title" color="inherit">
              Something went wrong!!
            </Typography>
          </Card>
        </div>
      )
    }
    export default withStyles(styles)(ErrorCard)
    

    Live example on Code Sandbox

    关于material-ui - 如何从组件中访问主题调色板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51434575/

    相关文章:

    reactjs - JSS 中的简单选择器和嵌套选择器

    reactjs - 我正在寻找如何在 material ui 的表格组件上绘制一条垂直线

    javascript - 如何清除输入表单上的 `onKeyDown` react 状态?

    css - 渲染超过 20 列时 Angular Material Table 崩溃了

    reactjs - 是否可以为事件处理程序推断useCallback的类型签名?

    google-chrome-extension - 如何使用 cssinjs/jss 在 shadow root 中挂载样式

    javascript - 将 JSON 信息获取到 Material-UI 对话框

    datagrid - Material-UI DataGrid : How do I add a tooltip to each row cell?

    css - 错位的页面内容-ui布局与 react

    reactjs - 如何修复 Material-UI Select w/MenuItem ,其中 MenuItem 水平渲染?