Я пытаюсь изменить выбранный цвет компонента Chip, не меняя мой theme.js
.
Я пытался использовать переопределение classes
с нужными мне цветами, но все равно изменив его на основной / дополнительный цвет. Я нашел эту часть в реализации
[...]
/* Styles applied to the root element if `onClick` and `color="primary"` is defined or `clickable={true}`. */
clickableColorPrimary: {
'&:hover, &:focus': {
backgroundColor: emphasize(theme.palette.primary.main, 0.08),
},
},
/* Styles applied to the root element if `onClick` and `color="secondary"` is defined or `clickable={true}`. */
clickableColorSecondary: {
'&:hover, &:focus': {
backgroundColor: emphasize(theme.palette.secondary.main, 0.08),
},
},
[...]
, и мне было интересно, есть ли способ переопределить это ...
Моя попытка с classes
переопределение выглядит следующим образом:
<Chip
classes={{
ColorSecondary: '#00d799',
ColorPrimary: '#ffb34b',
}}
color={!clicked ? 'primary' : 'secondary'}
size="small"
label={`${clicked ? 'Copied!' : 'Copy'}`}
onClick={() => setClicked(!clicked)}
/>
, но это не помогло.
edit:
Я обновил свой код в соответствии с комментарием Фреда A :
<Chip
classes={{
colorPrimary: classes.overrideColorPrimary,
colorSecondary: classes.overrideColorSecondary,
}}
color={!clicked ? 'primary' : 'secondary'}
size="small"
label={`${clicked ? 'Copied!' : 'Copy'}`}
onClick={() => setClicked(!clicked)}
/>
с использованием classes
prop:
[...]
overrideColorPrimary: {
backgroundColor: '#ffb34b',
},
overrideColorSecondary: {
backgroundColor: '#00d799',
},
[...]
Но у меня все еще есть проблемы, когда чип находится в фокусе или зависает, где он по умолчанию равен theme.js
цвета. после щелчка по микросхеме это свойство отображается:
.MuiChip-clickableColorPrimary:hover, .MuiChip-clickableColorPrimary:focus {
background-color: rgb(137, 137, 138);
}
при проверке элемента.