如何覆盖选定的MenuItem样式?

Dan*_*los 1 reactjs material-ui

我在项目中使用Material-ui-next Select组件。

大多数样式都使用classesprop 覆盖。但selected即使使用,键也无法使用MuiThemeProvider

这是代码的相关部分:

...

const theme = createMuiTheme({
  overrides: {
    MuiMenuItem: {
      selected: {
        backgroundColor: 'transparent',
      }
    }
  }
});
Run Code Online (Sandbox Code Playgroud)

...

class SelectMUI extends Component {

  render() {

  const {className, name} = this.props

  return (
    <MuiThemeProvider theme={theme}>
      <Select
        classes={{root: 'muisc-root', icon: 'muisc-icon', select: 'muisc-select', selectMenu: 'muisc-select-menu'}}
        className={`mui-select-custom ${className}`}
        endAdornment={<Caret className='mui-select-caret'/>}
        MenuProps={{classes: {paper: 'muisc-menu-paper'}}}
        {...this.props}
      >
        {this.props.children}
      </Select>
  </MuiThemeProvider>
)
Run Code Online (Sandbox Code Playgroud)

}}

因此,正如您所看到的,当我将MenuItems导入为道具时,我使用的MuiThemeProvider是在项目中注入样式。

这是所选项目中应用样式的屏幕截图:

在此处输入图片说明

如何重写此选择器,该选择器将来自同一元素的两个类组合在一起?

Dan*_*los 5

好的,我弄清楚了如何覆盖组合的选择器。解决方法如下:

   MuiMenuItem: {
      root: {
        background: 'transparent',
        '&$selected': { // <-- mixing the two classes
          backgroundColor: 'transparent'
        }
      }
    }
Run Code Online (Sandbox Code Playgroud)