4

我正在尝试使用类似于单选按钮的 Material UI Toggle Button 来为用户提供给定问题的 2 个选择。

它主要按预期运行,但是当尝试调整选择每个切换按钮时的样式时,我无法更改切换按钮的背景颜色。我在 ToggleButton 组件上使用 classes 道具,并在该道具中使用“选定”规则。某些 css 属性(例如 padding 和 boxShadow)有效,但其他属性(包括 backgroundColor)则无效。我的目标是让 Toggle 按钮在选择时具有蓝色背景,但到目前为止,我无法让它在选择时显示与深灰色背景不同的显示。

我正在使用 React,以及 Formik 和 Formik-Material-UI。这是我的代码:

const useStyles = makeStyles((theme) => ({
  toggleButton: {
    backgroundColor: 'blue',
    border: [10, 'solid', 'black'],
    padding: 10,
    boxShadow: [
      [0, 0, 0, 1, 'blue'],
    ],

  }
}));

export function ScheduleAndServices(props) {
  const classes = useStyles(props);

return (

            <Field 
              component={ToggleButtonGroup} 
              name="requestType" 
              type="checkbox" 
              exclusive
            >
              <ToggleButton 
                value="ps" 
                aria-label="Temporary/Occasional" 
                selected={values.requestType === "ps" ? true : false}
                classes={{selected: classes.toggleButton}}
              >Temporary/Occasional   
              </ToggleButton>
              
              <ToggleButton 
                value="reg" 
                aria-label="Regular"
                selected={values.requestType === "reg" ? true : false}
              >Regular
              </ToggleButton>
            </Field>
);
}
4

3 回答 3

0
  const useStyles = makeStyles(theme => ({
    ToggleButton : {
        '&.MuiToggleButton-root.Mui-selected': {
            backgroundColor: theme.palette.common.white,
        }
    }
}));
于 2021-08-24T17:09:05.980 回答
0

创建新类,不要忘记使用 !important 覆盖“Mui-selected”类的背景颜色

classes= useStyle({
newClass { backgroundColor:'red!important'},
})

<ToggleButton 
classes={{ 
selected:clasess.newClass,
.
.
.
}}
value=''
/>
于 2021-07-30T20:31:58.827 回答
0

在您的全局 css 或 scss 文件中尝试:

button.MuiToggleButton-root.Mui-selected {
  background-color: #1f792f !important;
  border-color: #000 !important;
}

于 2021-06-17T08:28:14.470 回答