1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Reactで動的な値を使ってMUIアイコンを表示する

Posted at

実務の中でどのアイコンを使うか決まっていないコンポーネントを作成する必要があったのでその忘備録です。

イメージとしては新規に作成したアイテムに後からアイコンを紐づける感じです。
この場合、アイコン名が動的の要素となるので<HogeIcon />という呼び出し方が書けませんでした。
代わりの実現方法を調べた結果、モジュールの全てをインポート、動的な値でアクセスしたモジュールをReact.createElement()を使ってReact要素を作成する方法が見つかりました。

  1. モジュールの全てをインポート
    import * as muiIcons from "@mui/icons-material"
  2. モジュールのアクセス
    const icon = muiIcons[iconName]
  3. React要素の生成
    React.createElement(icon)

実装例

CodeSandboxに実装例を置いています。
ここではセレクトメニューからアイコン名を選び、横の追加ボタンを押すことで選択中のアイコンが追加される例を作成しました。

参考記事

React + Material UIで動的にMaterialアイコンを表示する

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?