gpt4 book ai didi

reactjs - 选中后如何正确使用 MUISwitch "bar"颜色的主题覆盖?

转载 作者:行者123 更新时间:2023-12-03 14:06:33 24 4
gpt4 key购买 nike

仔细阅读 source code 后我尝试了以下方法,它有效,但在控制台中生成警告。

const myTheme = createMuiTheme({
overrides: {
MuiSwitch: {
checked: {
"& + $bar": {
opacity: 1.0,
backgroundColor: "rgb(129, 171, 134)" // Light green, aka #74d77f
}
}
}
}
});

我得到的错误/警告是:

Warning: Material-UI: the `MuiSwitch` component increases the CSS specificity of the `checked` internal state.
You can not override it like this:
{
"checked": {
"& + $bar": {
"opacity": 1,
"backgroundColor": "rgb(129, 171, 134)"
}
}
}

Instead, you need to use the $ruleName syntax:
{
"&$checked": {
"& + $bar": {
"opacity": 1,
"backgroundColor": "rgb(129, 171, 134)"
}
}
}

我不知道如何正确执行此操作。

更新:

我在下面得到了一个很好的解决方案,但我的代码也覆盖了不同的辅助颜色,并且新规则也覆盖了该颜色。

colorSecondary: {
"&$checked": {
"& + $bar": {
opacity: 0.3,
backgroundColor: "white"
}
}
`

最佳答案

更新 - 最初的问题是针对 Material-UI v3 的。在 v4 中,“bar”CSS 类被重命名为“track”。答案中的示例已更新为 v4。

<小时/>

以下语法有效:

const theme = createMuiTheme({
overrides: {
MuiSwitch: {
track: {
"$checked$checked + &": {
opacity: 1.0,
backgroundColor: "rgb(129, 171, 134)" // Light green, aka #74d77f
}
}
}
}
});

Edit Switch bar color

$checked 在那里出现两次,以增加特异性以匹配默认样式的特异性。

如果您需要以不同的方式处理三种不同的颜色选择,那么您可以执行如下操作:

import React from "react";
import ReactDOM from "react-dom";

import Switch from "@material-ui/core/Switch";
import { createMuiTheme, MuiThemeProvider } from "@material-ui/core/styles";
const theme = createMuiTheme({
overrides: {
MuiSwitch: {
track: {
"$checked:not($colorPrimary):not($colorSecondary) + &": {
opacity: 1.0,
backgroundColor: "rgb(129, 171, 134)"
},
"$checked$colorPrimary + &": {
opacity: 1.0,
backgroundColor: "purple"
},
"$checked$colorSecondary + &": {
opacity: 1.0,
backgroundColor: "pink"
}
}
}
}
});
function App() {
return (
<MuiThemeProvider theme={theme}>
<Switch color="default" />
<Switch color="primary" />
<Switch color="secondary" />
</MuiThemeProvider>
);
}

const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);

Edit Switch bar color

关于reactjs - 选中后如何正确使用 MUISwitch "bar"颜色的主题覆盖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55948999/

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