sass 喜欢在 material ui 中进行插值以获得类似类名的 BEM
sass like interpolation in material ui to get BEM like classnames
const useStyles = makeStyles({
block: {
`${&}__element `: {
color: 'green',
}
},
});
以上代码在 material UI 中不起作用。有什么方法可以像 sass
的插值一样对 parent selector '&'
进行插值以获得类名 block__element
吗?
你不需要任何特殊的语法。 &
本身将被 .classNameGeneratedForBlock
取代,因此您可以执行以下操作:
const useStyles = makeStyles({
block: {
"&__element": {
color: "green"
}
}
});
这是一个完整的工作示例:
import React from "react";
import { makeStyles } from "@material-ui/core/styles";
const useStyles = makeStyles({
block: {
backgroundColor: "lightblue",
"&__element": {
color: "green"
}
}
});
export default function App() {
const classes = useStyles();
return (
<div className={classes.block}>
<h1 className={`${classes.block}__element`}>Hello CodeSandbox</h1>
<h2>Start editing to see some magic happen!</h2>
</div>
);
}
const useStyles = makeStyles({
block: {
`${&}__element `: {
color: 'green',
}
},
});
以上代码在 material UI 中不起作用。有什么方法可以像 sass
的插值一样对 parent selector '&'
进行插值以获得类名 block__element
吗?
你不需要任何特殊的语法。 &
本身将被 .classNameGeneratedForBlock
取代,因此您可以执行以下操作:
const useStyles = makeStyles({
block: {
"&__element": {
color: "green"
}
}
});
这是一个完整的工作示例:
import React from "react";
import { makeStyles } from "@material-ui/core/styles";
const useStyles = makeStyles({
block: {
backgroundColor: "lightblue",
"&__element": {
color: "green"
}
}
});
export default function App() {
const classes = useStyles();
return (
<div className={classes.block}>
<h1 className={`${classes.block}__element`}>Hello CodeSandbox</h1>
<h2>Start editing to see some magic happen!</h2>
</div>
);
}