Closed1

【React.js,Material-ui】clsxで可変のstyleを適用する。

hirohiro

何について書く?

  • 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)}
          >

参考サイト

https://www.npmjs.com/package/clsx
https://www.javaer101.com/ja/article/6524200.html

このスクラップは2022/04/17にクローズされました