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.
相关产品推荐
相关产品推荐

