Существует три отдельных источника информации для большинства компонентов Material-UI:
Каждый компонент документирует в документации API классы, которые можно передать через свойство classes
для переопределениястили для различных аспектов компонента.
В этом случае компонент, о котором мы заботимся, - BottomNavigationAction
.В разделе CSS документации API вы найдете:
root
Стили, примененные к корневому элементу.
selected
Стили, примененные ккорневой элемент, если он выбран.
Видя это, вы можете сначала попробовать:
const styles = {
root: {
color: "green"
},
selected: {
color: "red"
}
};
И это почти сработает.Неактивные действия имеют зеленый цвет, но выбранное действие имеет красный текст, но цвет значка не изменился.Когда стилирование работает не совсем так, как вы ожидали, следующим местом будет исходный код, чтобы увидеть, как выполняется стилизация в компоненте.
Ниже приведена упрощенная версия стилей BottomNavigationAction
(ямы включили только части, относящиеся к управлению этими двумя цветами):
export const styles = theme => ({
/* Styles applied to the root element. */
root: {
color: theme.palette.text.secondary,
'&$selected': {
color: theme.palette.primary.main,
},
},
/* Styles applied to the root element if selected. */
selected: {},
});
Если мы смоделируем наши переопределения того, как это структурировано, мы находим успех.Окончательный результат выглядит следующим образом:
import React from "react";
import Paper from "@material-ui/core/Paper";
import BottomNavigation from "@material-ui/core/BottomNavigation";
import BottomNavigationAction from "@material-ui/core/BottomNavigationAction";
import RestoreIcon from "@material-ui/icons/Restore";
import FavoriteIcon from "@material-ui/icons/Favorite";
import LocationOnIcon from "@material-ui/icons/LocationOn";
import { withStyles } from "@material-ui/core/styles";
const styles = {
root: {
color: "green",
"&$selected": {
color: "red"
}
},
selected: {}
};
class MyBottomNavigation extends React.Component {
render() {
const actionClasses = this.props.classes;
return (
<Paper zDepth={1}>
<BottomNavigation value={1} showLabels={true}>
<BottomNavigationAction
classes={actionClasses}
label="Home"
icon={<RestoreIcon />}
/>
<BottomNavigationAction
classes={actionClasses}
label="Course"
icon={<FavoriteIcon />}
/>
<BottomNavigationAction
classes={actionClasses}
label="Authors"
icon={<LocationOnIcon />}
/>
</BottomNavigation>
</Paper>
);
}
}
export default withStyles(styles)(MyBottomNavigation);
Вот некоторые дополнительные ресурсы здесь, в переполнении стека, на некоторые похожие вопросы, на которые я ответил относительно других Материалов-UI компоненты: