はじめに
サイドバーを作ろうと思って、Material UIのDrawerを使おうとしたとき、公式のリファレンスが載せているコードが盛り沢山でどこが最小限なのかわからん!になったので最もシンプルな形を目指してみました。
環境
- Material UI v4.11.3
- react v17.0.1
最もシンプルを目指してみた
import React, {useState} from 'react';
import Drawer from '@material-ui/core/Drawer';
export default function TemporaryDrawer() {
const [open, setopen] = useState(false);
const toggleOpen=() => {
setopen(!open);
}
return(
<>
<button onClick={toggleOpen}>hoge</button>
<Drawer anchor='left' open={open} onClose={toggleOpen}>
<p>hello</p>
</Drawer>
</>
);
}
これだけのコードでボタンを押して開いてサイドバー以外をクリックすると閉じるナビゲーションドロワーを実現することができます。
anchor = 'left'
をtop, right, bottomにするとそれぞれ上から、右から、下から出てくるように変更できます。
上のコードでの表示をみてみるとこんな感じ
ナビゲーションドロワーの幅を指定する必要はありそうですが、あとは<Drawer />
の子要素を変更するだけで素敵なナビゲーションドロワーを作れます!!