Как переопределить выбранные классы в menuItem в материале REACTjs? - PullRequest
1 голос
/ 01 апреля 2019

привет, у меня возникла проблема. Я не могу переопределить класс, который показывает правильный стиль при выборе menuItem: вот мой код:

       <MenuItem component={Link} to="/Acceuil" 
        className={{root:classes.menuItem ,selected:classes.selected}} 
           selected={pathname === "/Acceuil"} >
              <ListItemIcon>
                  <Icon className={classes.icon} >
                      insert_drive_file
                   </Icon>
               </ListItemIcon>
            Gestion Commandes
        </MenuItem>

и это классы const:

      Const classes = theme => ({
       menuItem: {
         fontStyle:'bold',
         backgroundColor: 'white',
         width: '88%',
      '&:active':{
        borderLeft: '4px solid #51bcda',
        backgroundColor: "-webkit-box-shadow: 6px 4px 53px -7px 
        rgba(0,0,0,0.75), -moz-box-shadow: 6px 4px 53px -7px 
        rgba(0,0,0,0.75),   box-shadow: 6px 4px 53px -7px 
        rgba(0,0,0,0.75),",
        },
       selected:{
       backgroundColor:'red !important' 
       } 
       });

спасибо за помощь ^^

1 Ответ

0 голосов
/ 01 апреля 2019

Чтобы понять, как стилизовать это с соответствующей спецификой, вам нужно взглянуть на ListItem исходный код (MenuItem делегирует большую часть его стиля ListItem).

Вот соответствующие части стиля ListItem для состояния selected:

export const styles = theme => ({
  root: {
    '&$selected, &$selected:hover, &$selected:focus': {
      backgroundColor: theme.palette.action.selected,
    },
  },
  /* Styles applied to the root element if `selected={true}`. */
  selected: {},
});

Ниже я включил пример переопределения стиля для выбранного элемента MenuItem вместе с рабочим CodeSandbox на основе Демо выбранных меню .

const styles = theme => ({
  menuItemRoot: {
    "&$menuItemSelected, &$menuItemSelected:focus, &$menuItemSelected:hover": {
      backgroundColor: "red"
    }
  },
  menuItemSelected: {}
});
...
            <MenuItem
              classes={{
                root: classes.menuItemRoot,
                selected: classes.menuItemSelected
              }}
...

Edit Menu selected styling

Вот аналогичный вопрос / ответ длядругой компонент Material-UI: Стиль BottomNavigation в React.js Материал-UI

...