我需要知道选择root时如何定位'element'
这是makeStyles:
const useStyles = makeStyles(theme => ({
root:{
'&.selected': {
}
},
element: {
}
})
这是jsx
<div className={`${classes.root} ${elementSelected ? 'selected : ''}`}>
<div className={classes.element}>
</div>
</div>
答案 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>