reactjs - 如何解决 Material ui 中的多个菜单项的问题
问题描述
当我尝试多次放置菜单组件时,我得到错误的弹出列表。我在下面的代码框链接上显示了我的问题。我把 data-id 属性显示在 chromedev 中是 popu 列表是正确的。
<Button
aria-controls="simple-menu"
aria-haspopup="true"
onClick={handleClick}
>
Open Menu
</Button>
<Menu
id="simple-menu"
anchorEl={anchorEl}
keepMounted
open={Boolean(anchorEl)}
onClose={handleClose}
>
<MenuItem onClick={handleClose} data-id="1">
Profile
</MenuItem>
<MenuItem onClick={handleClose}>My account</MenuItem>
<MenuItem onClick={handleClose}>Logout</MenuItem>
</Menu>
<Button
aria-controls="simple-menu2"
aria-haspopup="true"
onClick={handleClick}
>
Open Menu
</Button>
<Menu
id="simple-menu2"
anchorEl={anchorEl}
keepMounted
open={Boolean(anchorEl)}
onClose={handleClose}
>
<MenuItem onClick={handleClose} data-id="2">
Profile
</MenuItem>
<MenuItem onClick={handleClose}>My account</MenuItem>
<MenuItem onClick={handleClose}>Logout</MenuItem>
</Menu>
</div>
我希望显示正确的弹出列表。当我单击左侧数据 ID 应为“1”时,右侧应为“2”实际上当我单击列表 1 时,我得到“2”
解决方案
我猜anchorEl
第二个的问题Menu
。它应该是
<Button
aria-controls="simple-menu2"
aria-haspopup="true"
onClick={handleClick} // Here you have to set target to `anchorEl2`
>
Open Menu
</Button>
<Menu
id="simple-menu2"
anchorEl={anchorEl2}
keepMounted
open={Boolean(anchorEl2)}
onClose={handleClose}
>
<MenuItem onClick={handleClose} data-id="2">
Profile
</MenuItem>
<MenuItem onClick={handleClose}>My account</MenuItem>
<MenuItem onClick={handleClose}>Logout</MenuItem>
</Menu>
这是给你的工作演示。 https://stackblitz.com/edit/react-material-menu-jnnxnc
推荐阅读
- python - U-Net 分割 Keras 的 Hausdorff 损失
- windows - 警告:[次要] ExtractEmbedded 选项可能会在电影数据中找到更多标签
- node.js - Reactjs + Nodejs + Nginx - 网站加载时间过长
- c# - 如何使用 string.contains 找到分隔/隔离的子字符串?
- java - 如何查找特定日期的临时列表?
- html - 如何基于父元素应用 CSS 样式,类似于媒体查询
- java - 在 weblogic 11g 中部署 Spring Boot 应用程序
- html - 使用 ajax 和带有 cors.preflight.header 过滤器的 Tomcat 的 RESTful 服务中的 http preflight 标头出现问题
- c++ - C++ no matching constructor initialization of []
- module - 两个页面的 ionic 4 translateModule 将导致 ERROR RangeError: Maximum call stack size exceeded