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

MUI问题:如何阻止下拉菜单点击后出现跳动现象?

解决Next.js中MUI TextField(select模式)下拉菜单初始错位问题

针对你遇到的下拉菜单先在左上角显示再跳转至目标位置的问题,可尝试以下几个解决方案:

  • 手动指定Menu的锚点与转换原点
    当设置getContentAnchorEl: null后,需在MenuProps中明确配置锚点位置,避免组件初始定位计算错误。修改你的SelectProps配置:

    SelectProps={{
      variant: "menu",
      getContentAnchorEl: null,
      MenuProps: {
        sx: { maxHeight: 200 },
        anchorOrigin: {
          vertical: 'bottom',
          horizontal: 'left',
        },
        transformOrigin: {
          vertical: 'top',
          horizontal: 'left',
        },
      },
    }}
    
  • 移除强制focused属性
    你给TextField设置了focused属性,这会强制组件处于聚焦状态,可能干扰下拉菜单的初始定位逻辑。去掉该属性,让组件自动处理聚焦状态。

  • 给父容器添加相对定位
    如果父级<div>未设置定位属性,Menu组件可能无法正确识别锚点元素。给父div添加相对定位:

    <div sx={{ position: 'relative' }}>
      {/* 你的TextField代码 */}
    </div>
    
  • 升级MUI版本
    部分旧版本的@mui/material存在下拉菜单定位bug,尝试升级到最新稳定版本(如v5.14.x及以上):

    npm update @mui/material @mui/icons-material @emotion/react @emotion/styled
    

内容的提问来源于stack exchange,提问作者Ives E.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 08:10:19