You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Material UI Menu Button无法渲染选项问题求助

问题诊断与修复方案

核心问题

你的Menu组件open属性绑定了独立的open状态,但这个状态从未在点击按钮时更新。而你已经通过const menuOpen = Boolean(anchorEl)判断了菜单的开闭状态,却没在Menu组件中使用这个变量,导致菜单始终处于隐藏状态。

修复步骤

1. 修正Menu组件的open属性

将Menu组件的open={open}改为open={menuOpen},让菜单显示状态直接与anchorEl的存在状态绑定:

<Menu
  id='long-menu'
  MenuListProps={{
    'aria-labelledby': 'horz-button'
  }}
  anchorEl={anchorEl}
  open={menuOpen} // 此处修改为menuOpen
  onClose={handleMenuClose}
  PaperProps={{
    style: {
      maxHeight: ITEM_HEIGHT * 4.5,
      width: '20ch',
    },
  }}
>
  {options.map((option) => (
    <MenuItem key={option} selected={option === 'Pyxis'} onClick={handleMenuClose}>
      {option}
    </MenuItem>
  ))}
</Menu>

2. (可选)清理冗余状态

如果不需要独立的open状态,可直接删除const [open, setOpen] = useState(false)这一行,减少不必要的状态变量。

额外检查点

  • 确认所有Material UI组件(Menu、MenuItem、IconButton、MoreHorizIcon等)均已正确从@mui/material或@mui/icons-material导入
  • 检查posts[i]的有效性,避免因索引超出数组范围导致的布局异常(此点与菜单功能无关,但会影响组件整体渲染)

内容的提问来源于stack exchange,提问作者SupraCoder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 15:12:49