【发布时间】:2019-10-10 17:42:17
【问题描述】:
我有一个嵌套的菜单结构,如下所示:
menuItems = [
{
"key": "key1",
"caption": "Text1"
},
{
"key": "key2",
"caption": "Text2",
"subMenuItems": [
{
"key": "key3",
"caption": "Text3",
"subMenuItems": [
{
"key": "key4",
"caption": "Text4"
}
]
},
{
"key": "key5",
"caption": "Text5",
"subMenuItems": []
},
{
"key": "key6",
"caption": "Text6"
}
]
},
{
"key": "key7",
"caption": "Text7"
}
]
我想在打开到其父级右侧的子菜单中打开子菜单项。类似于Angular Material Menu (Nested menu example)。
我尝试使用 Material UI Menu,它会根据需要打开菜单 (See here),但存在以下 2 个问题:
- 如果您打开父菜单,然后再打开任何子菜单,您需要在外部单击菜单的次数与菜单相同。相反,它应该在点击外部时关闭所有父 + 子菜单。
- 如果您想通过单击另一个父菜单项来切换子菜单,您需要先单击父菜单(或按照问题 1,单击外部)关闭当前打开的子菜单,然后单击所需的父菜单项以打开相应的子菜单。
问题 1 可以使用 ClickAwayListener 和 implemented here 来解决,但即使尝试切换到另一个子菜单(例如从“按钮 3”子菜单切换到“更多项目”),它也会关闭所有菜单。
谢谢。
【问题讨论】:
标签: reactjs material-ui