Closed1
【React.js,Material-ui】clsxで可変のstyleを適用する。
何について書く?
- clsxで可変のstyleを適用する方法について。
内容
- まず結論
<TestCompornent className={clsx(classes.befor, boolean && classes.after )} />
上記の書き方で、条件分岐によるスタイル適用が可能となる。
classes
⇒予めJSXのスタイルを指定しているオブジェクト
boolean
⇒ステート(useContextやrecoilなど)の変化を見てbooleanが格納されうような変数や式
-
これを使用すれば、自分の意図にあった動きをアプリに適用可能。今後も活用していきたい。
-
活用例
Material-ui Persistent drawer
import React from 'react';
import clsx from 'clsx'; //←ここでインポート。
// ★中略
const useStyles = makeStyles((theme: Theme) =>
createStyles({
//中略
}),
);
export default function PersistentDrawerLeft() {
const classes = useStyles();
const theme = useTheme();
const [open, setOpen] = React.useState(false);
const handleDrawerOpen = () => {
setOpen(true);
};
const handleDrawerClose = () => {
setOpen(false);
};
return (
//★中略
//下記classNameの部分で可変にできるようしている。
<IconButton
color="inherit"
aria-label="open drawer"
onClick={handleDrawerOpen}
edge="start"
className={clsx(classes.menuButton, open && classes.hide)}
>
参考サイト
このスクラップは2022/04/17にクローズされました