gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 13:17:07 26 4
gpt4 key购买 nike

使用 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>
)
}

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

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} />
}

关于reactjs - 引用主题的原色而不是 Material UI 中的特定颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43281020/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com