hookを使ったMaterialUIのハートアイコンのON・OFF
1681 ワード
MaterialUIを使って、ハートアイコン(MaterialUI的にはFavoriteIcon)を
実装したいときに色々悩んだので書きます。
結論
完成品
コード
import { React, useState } from "react";
import { IconButton } from "@material-ui/core";
import FavoriteIcon from "@material-ui/icons/Favorite";
import FavoriteBorderIcon from "@material-ui/icons/FavoriteBorder";
const Demo = () => {
//ハートの状態を管理するfavoを定義(初期値はfalse)
const [favo, setFavo] = useState(false);
//アイコンをクリックしたらfavoのtrueとfalseが切り替わる関数を作成
const handleClick = () => {
if (favo === false) {
setFavo(true);
} else {
setFavo(false);
}
};
//trueなら<FavoriteBorderIcon />をfalseなら<FavoriteIcon color={"secondary"} />を描画
return(
<>
<IconButton
onClick={() => handleClick()}
>
{favo ? <FavoriteIcon color={"secondary"} /> : <FavoriteBorderIcon />}
</IconButton>
</>
)
}
export default Demo
ハートの色を白から赤に変えるために
FavoriteIcon
にはcolor={"secondary"}
を与えている。
感想
可読性はあんまり良くないです。
もっといい方法知っている方は教えていただけると助かります!
Author And Source
この問題について(hookを使ったMaterialUIのハートアイコンのON・OFF), 我々は、より多くの情報をここで見つけました https://qiita.com/hirota_29/items/0d080c5c403f200d0289著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .