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

MUI Autocomplete组件键盘滚动选项无高亮提示如何解决

解决MUI Autocomplete键盘选择无高亮的问题

原因说明

MUI的Autocomplete默认内置了键盘聚焦高亮逻辑,没有单独的开启配置,出现无高亮的现象通常是两种情况:

  • 自定义renderOption渲染函数时,没有透传组件内置props、也没有使用focused状态参数绑定高亮样式
  • 默认主题的聚焦高亮样式对比度较低,和你的页面背景色接近,导致视觉上无法识别

解决方案1:修复自定义选项渲染逻辑

如果你重写了renderOption属性,需要接收第三个参数里的focused状态,手动绑定高亮样式,同时必须透传props保证键盘事件正常生效,示例代码:

<Autocomplete
  options={options}
  renderOption={(props, option, { selected, focused }) => (
    <li {...props}
      style={{
        backgroundColor: focused ? '#e3f2fd' : selected ? '#f5f5f5' : 'transparent',
        fontWeight: focused ? 600 : 400,
        ...props.style
      }}
    >
      {option.label}
    </li>
  )}
  // 其余配置保持不变
/>

注意不要删除li元素上的{...props}透传逻辑,组件内部的键盘事件、状态绑定都依赖这些内置属性

解决方案2:CSS覆写默认样式

如果没有自定义渲染逻辑,直接覆写MUI内置的聚焦选项类即可:

/* 全局CSS样式 */
.MuiAutocomplete-option.Mui-focused {
  background-color: #1976d220 !important;
  font-weight: 600;
}

如果使用styled组件封装,可以这么写:

import { styled } from '@mui/material/styles';
import Autocomplete from '@mui/material/Autocomplete';

const StyledAutocomplete = styled(Autocomplete)(({ theme }) => ({
  '& .MuiAutocomplete-option.Mui-focused': {
    backgroundColor: theme.palette.primary.light + '20',
    fontWeight: 600,
  }
}));

内容的提问来源于stack exchange,提问作者D. Barman

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 03:30:05