Ala*_*med 6 css reactjs material-design material-ui jss
我需要知道在选择 root 时如何定位“元素”
这是 makeStyles:
const useStyles = makeStyles(theme => ({
root:{
'&.selected': {
}
},
element: {
}
})
Run Code Online (Sandbox Code Playgroud)
这是 jsx
<div className={`${classes.root} ${elementSelected ? 'selected : ''}`}>
<div className={classes.element}>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
Chr*_*hen 11
您可以使用https://www.npmjs.com/package/classnames来实现这一点。
const useStyles = makeStyles(theme => ({
root:{
'&.selected $element': {
}
}
})
Run Code Online (Sandbox Code Playgroud)
还有你的 JSX
import classNames from 'classnames';
...
<div className={classNames(classes.root, elementSelected ? 'selected : '')}>
<div className={classes.element}>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
这个答案是@Chris 答案的替代方案。
您不需要在项目中包含另一个包,因为您可以使用Material-UI 中的“clsx”。就是这样:
const useStyles = makeStyles(theme => ({
root:{
'&.selected $element': {
}
}
})
Run Code Online (Sandbox Code Playgroud)
安装 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>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14069 次 |
| 最近记录: |