引用主题的原色而不是 Material UI 中的特定颜色

2024-02-25

使用 ReactJS 和 Material UI,我有一个项目,其中我更改了主题颜色。

const newTheme = getMuiTheme({
    fontFamily: 'Roboto, sans-serif',
    palette: {
        primary1Color: cyan500,
        primary2Color: cyan700,
        primary3Color: grey400,
        accent1Color: amberA400,
        accent2Color: grey100,
        accent3Color: grey500,
        textColor: darkBlack,
        alternateTextColor: white,
        canvasColor: white,
        borderColor: grey300,
        disabledColor: fade(darkBlack, 0.3),
        pickerHeaderColor: cyan500,
        clockCircleColor: fade(darkBlack, 0.07),
        shadowColor: fullBlack,
    },
});

  // App class
  render() {
    return(
        <ThemeProvider theme={newTheme}>
            <Project />
        </ThemeProvider>
    )
  }

一切都按预期进行。某些组件(例如按钮)能够根据主要道具设置颜色。但是,我有一个使用需要原色的图标的组件。我可以导入颜色并直接设置:

import React from 'react';
import ActionLock from 'material-ui/svg-icons/action/lock';
import {cyan500} from 'material-ui/styles/colors';

export default class LockIcon extends React.Component {
    render() {
        return(
            <ActionLock color={cyan500} />
        )
    }
}

是否有某种方法可以引用主题的主要颜色,而不是单独设置每个组件中的颜色?就像是:

import React from 'react';
import ActionLock from 'material-ui/svg-icons/action/lock';
import {primary1Color} from 'somewhere';

export default class LockIcon extends React.Component {
    render() {
        return(
            <ActionLock color={primary1Color} />
        )
    }
}

如果您使用的是 React v16.8.0 和 Material-UI v3.5.0 或更高版本,您可以使用useTheme() hook:

import { useTheme } from '@material-ui/core/styles';

function LockIcon = () => {
  const theme = useTheme();

  return (
    <ActionLock color={theme.palette.primary1Color} />
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

引用主题的原色而不是 Material UI 中的特定颜色 的相关文章

随机推荐

  • 从多个线程中选择同一个文件描述符

    如果我打电话会发生什么select来自多个线程的同一个打开的文件描述符 这有记录在某处吗 根据POSIX 2008select http pubs opengroup org onlinepubs 9699919799 functions
  • 复选框和单选按钮

    复选框是否有权像单选按钮一样工作 我正在开发一个测验应用程序 其中选项具有单选按钮的行为 并且选项的图标像复选框一样 我是否可以将复选框分组为我们将单选按钮分组 如果您想要看起来像复选框的单选按钮 将RadioButton的样式设置为 an
  • GNU Flex 库 libfl 提供什么?

    我可以从 flex 和 bison 生成的文件编译一个程序 cc lex yy c program tab c o output 也由 cc lex yy c program tab c lfl o output 它们都运行顺利 没有任何问
  • 通过 GenericEntity> 在 RESTful Response 对象中使用 Java 泛型模板类型

    我有一个通用的 JAX RS 资源类 并且我已经定义了一个通用的findAll method public abstract class GenericDataResource
  • 为什么Complete输出模式需要聚合?

    我在 Apache Spark 2 2 中使用最新的结构化流处理并遇到以下异常 org apache spark sql AnalysisException 完整输出模式不 当流上没有流聚合时支持 数据框 数据集 为什么完整输出模式需要流式
  • 禁止访问消息以防止从 Excel 重复导入

    我正在将数据从 Excel 导入到 Access 中的现有表中 并希望抑制以下消息 我尝试使用多字段索引将新记录导入表中 并且还尝试首先导入临时表 然后将新记录附加到现有表中 然而 在这两种情况下 它仍然会弹出以下消息 我想避免用户看到该消
  • 使用 Linq 查询 Xml 文件中的记录

    以下是我的 xml 文件 我必须为每个页面和每个类型获取以逗号分隔的字符串提到的字段 请帮助了解如何继续使用 Linq 示例 如果我想为 page1 定义 Type customFields 则必须以逗号分隔输出 项目ID 员工ID 员工姓
  • 同一个Python解释器实例同时运行多个脚本?

    6 7 年前 我看到了一种在资源紧张的 env 上运行 python 的倡议 只需运行解释器一次 同时允许多个脚本同时使用它 这个想法是节省解释器启动开销并节省 RAM 是否存在类似的东西 这个问题Python 从同一个解释器同时执行多个脚
  • Scanf 漏行

    我编写了一个测试程序 它应该接受 3x3 字符矩阵并输出输入的矩阵 但是 我必须输入 4 行才能让程序生成相应的矩阵 我已经查找了 scanf 函数的问题 但我尝试过的解决方案似乎都不起作用 你能帮我解决这个问题吗 My code incl
  • Paramiko Python:IOError:[Errno 13]权限被拒绝

    问题 我可以做类似的事情吗 self sftp put sourceFilePath final destination use sudo True 我可以创建文件夹 但不能创建文件 我需要显式调用 sudo 或在 paramiko 中设置
  • 从 CSV 文件创建 Networkx 图表

    我正在尝试构建一个 NetworkX 社交网络图CSV file https github com MelissaLaurino DolphinSocialNetwork Laurino blob master test csv 我正在使用
  • java 字符串分割

    如果我想分割任意字符串的字符 考虑有间隙和无间隙 该怎么办 例如 如果我有字符串My Names James我希望每个角色都像这样 M y n a m e s etc 你是这个意思 String sentence Hello World S
  • 该方法必须重写超类方法

    最近我将计算机更新到 Ubuntu 11 10 64 位 我在导入项目时遇到问题 它给了我一个错误 方法 onView 必须重写超类方法 我在其他一些帖子中读到错误应该是使用java 1 5 但是Ubuntu 11 10附带了open 6
  • Laravel 核心方法混乱

    我一直在挖掘 Laravel 的核心 因为我想了解它是如何工作的 但我想出了一个方法 即使三天后我也无法理解 在 start php 中 应用程序与其自身绑定 到目前为止 一切都很好 但是当我检查 app gt share 方法时我迷失了
  • 将函数应用于数据框中的每一列,观察每列现有的数据类型

    我正在尝试获取大数据框中每列的最小值 最大值 作为了解我的数据 我的第一次尝试是 apply t 2 max na rm 1 它将所有内容视为字符向量 因为前几列是字符类型 所以一些数字列的最大值是 99 5 然后我尝试了这个 sapply
  • SQL 聚合函数别名

    我是 SQL 初学者 这是我被要求解决的问题 假设大城市被定义为place类型的city人口为 至少100 000 编写返回方案的 SQL 查询 state name no big city big city population 订购st
  • 无法使用 SES 接收 S3 存储桶中的电子邮件

    我正在尝试创建一个系统 其中电子邮件将发送到我公司的邮箱 并且 S3 存储桶将存储这些电子邮件 每当存储新电子邮件时 都会触发 Lambda 函数来存储电子邮件并回复发件人 第二部分 然而 我没有成功地实现第一部分 我有一个托管在 AWS
  • 在 Web API 控制器中接收 Json 反序列化对象作为字符串

    以下是我从 Ui 输入的 Json data Id 1 Id 2 Id 3 我可以在如下所示的对象结构中没有问题地接收它 public class TestController ApiController
  • 动态生成角度为2的输入字段类型并设置字段的类型

    我是 Angular 2 的新手 尝试根据使用 Angular 2 的模型动态生成一堆输入字段 有些字段是密码字段 如果是的话 我想让输入字段输入密码 我写过这样的东西 div div
  • 引用主题的原色而不是 Material UI 中的特定颜色

    使用 ReactJS 和 Material UI 我有一个项目 其中我更改了主题颜色 const newTheme getMuiTheme fontFamily Roboto sans serif palette primary1Color