[解決済み] Material-UIを使用してAppbarの下にドロップダウンメニューを開くには?
2023-05-07 06:36:01
質問
私はMaterial-UIの初心者で、ちょうど彼らの メニュー付きアプリ バーの例 . メニューのドロップダウンをトグルするとき、それはAppbar自体の上に開きますが、私はそれがNavbarの下に開くことを望んでいます。
ドキュメントから、私は、これは次のようにして行うことができると理解しています。
anchorEl
のように説明されています。
ここで
. しかし、これを私の
menu
コンポーネントに実装しても何も起こりません。これを処理するための正しいマテリアルUIの方法とは何でしょうか?
class Header extends React.Component {
state = {
auth: true,
anchorEl: null,
anchorOriginVertical: 'bottom',
anchorOriginHorizontal: 'right',
transformOriginVertical: 'top',
transformOriginHorizontal: 'right',
anchorReference: 'anchorEl',
};
handleChange = (event, checked) => {
this.setState({ auth: checked });
};
handleMenu = event => {
this.setState({ anchorEl: event.currentTarget });
};
handleClose = () => {
this.setState({ anchorEl: null });
};
render() {
const { classes } = this.props;
const { auth, anchorEl } = this.state;
const open = Boolean(anchorEl);
return (
<div className={classes.root}>
<AppBar position="static">
<Toolbar>
<Typography type="title" color="inherit" className={classes.flex}>
Title
</Typography>
{auth && (
<div>
<IconButton
aria-owns={open ? 'menu-appbar' : null}
aria-haspopup="true"
onClick={this.handleMenu}
color="contrast"
>
<AccountCircle />
</IconButton>
<Menu
id="menu-appbar"
anchorEl={anchorEl}
open={open}
onClose={this.handleClose}
>
<MenuItem onClick={this.handleClose}>Profile</MenuItem>
<MenuItem onClick={this.handleClose}>My account</MenuItem>
</Menu>
</div>
)}
</Toolbar>
</AppBar>
</div>
);
}
}
どのように解決するのですか?
私も同じような問題がありましたが、私がうまくいった方法は、このようにメニュー自体にプロパティを設定することです。
<Menu
id="menu-appbar"
anchorEl={anchorEl}
getContentAnchorEl={null}
anchorOrigin={{ vertical: "bottom", horizontal: "center" }}
transformOrigin={{ vertical: "top", horizontal: "center" }}
open={open}
onClose={this.handleClose}
className={props.classes.menu}
>
を入れなければならなかったのですが
getContentAnchorEl={null}
を付けないと、縦方向のプロパティが機能しないことを、結局この問題から学びました。
https://github.com/mui-org/material-ui/issues/7961
.
アンカー要素のプロパティを設定するために状態を使用するときにこれをどのように行うかは不明ですが、多分これで始めることができます。
関連
-
[解決済み] テスト
-
[解決済み】React Propsが定義されていません。
-
[解決済み] SVGサークル内の画像にボーダーを追加する方法
-
[解決済み] Next.jsでWebSocketを利用する
-
[解決済み] jest: テストスイートの実行に失敗しました。予期しないトークンのインポート
-
[解決済み] ReactjsのEsLintの "react / jsx-props-no-spreading "エラーを無効化する。
-
[解決済み] React JSでは、状態を直接変異させない、setState() react/no-direct-mutation-stateを使用する。
-
[解決済み] validateDOMNesting警告React
-
[解決済み] MakeStyles を使用してコンポーネントのスタイルを設定し、マテリアル UI のライフサイクル メソッドを維持するにはどうすればよいですか?
-
[解決済み] クラスプロップを使ってMaterial UIに複数のクラスを追加するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】React - 式は1つの親要素を持つ必要がありますか?
-
[解決済み】ReactJS: マテリアルuiのブレークポイントについて
-
[解決済み] configuration.module に未知のプロパティ 'loaders' があります。
-
[解決済み] react router dom v4でwebpack dev serverを構成する方法は?
-
[解決済み] validateDOMNesting警告React
-
[解決済み] ReactコンポーネントのJest SnapshotテストにおけるSnapshotテストの仕組みとtoMatchSnapshot()関数は何をするのか?
-
[解決済み] componentWillReceivePropsライフサイクルメソッドはいつ使用するのですか?
-
[解決済み] react-router-domを使用する際に「Function components cannot be given refs」を回避する方法は?
-
[解決済み] 拡張子.tsと.tsxの違いは何ですか?どちらもreactのタイプスクリプトファイルの拡張子として使用されます。では、どこで使うべきなのでしょうか?
-
[解決済み] React QueryとReduxの主な違いは何ですか?