使用makeStyles

时间:2019-12-18 00:28:44

标签: css reactjs material-design material-ui jss

我需要知道选择root时如何定位'element'

这是makeStyles:

const useStyles = makeStyles(theme => ({
   root:{
      '&.selected': {
      }
   },
   element: {
   }
})

这是jsx

<div className={`${classes.root} ${elementSelected ? 'selected : ''}`}>
  <div className={classes.element}>
  </div>
</div>

2 个答案:

答案 0 :(得分:3)

此答案是@Chris答案的替代方法。

您不需要在项目中包含其他软件包,因为您可以在Material-UI中使用'clsx'。方法如下:

const useStyles = makeStyles(theme => ({
    root:{
        '&.selected $element': {
        }
    }
})

clsx软件包在安装Material-UI时随附。

import clsx from 'clsx';
const classes = useStyles(props);

...

<div className={clsx(classes.root, {
        [classes.selected]: elementSelected
    })}
>
    <div className={classes.element}>
    </div>
</div>

答案 1 :(得分:2)

您可以使用https://www.npmjs.com/package/classnames来实现。

const useStyles = makeStyles(theme => ({
   root:{
      '&.selected $element': {
      }
   }
})

还有您的JSX

import classNames from 'classnames';

...

<div className={classNames(classes.root, elementSelected ? 'selected : '')}>
  <div className={classes.element}>
  </div>
</div>