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

Material UI Select组件产生key缺失警告如何解决

问题原因

运行MUI Select组件代码时出现Each child in a list should have a unique "key" prop警告,是因为Select渲染下拉列表的<li>子节点时,需要每个同层级子元素携带唯一的key属性供React做虚拟DOM对比,组件本身不会自动给传入的MenuItem生成key,需要手动配置。

解决方法

给每一个<MenuItem>子组件传入唯一的key属性即可,通常直接使用每个选项唯一的value值作为key就满足要求。
针对示例代码,只需要修改MenuItem部分即可:

<Select
  value={value}
  label="Profile"
  onChange={onChange}
>          
  <MenuItem key="1" value="1">Test</MenuItem>
  <MenuItem key="2" value="2">Test</MenuItem>
</Select>

如果选项是动态遍历生成的,直接在遍历逻辑里给MenuItem绑定key即可,示例:

// 模拟选项数据
const profileOptions = [
  { id: 1, name: 'Test' },
  { id: 2, name: 'Test' }
]

// Select内渲染选项
<Select
  value={value}
  label="Profile"
  onChange={onChange}
>
  {profileOptions.map(option => (
    <MenuItem 
      key={option.id} 
      value={option.id}
    >
      {option.name}
    </MenuItem>
  ))}
</Select>

配置key的注意事项:

  • key只需要保证当前Select下所有MenuItem同层级唯一即可,不需要全局唯一
  • 优先使用选项本身自带的唯一标识(比如id、value)作为key
  • 不推荐使用遍历的index作为key,避免选项顺序变动时引发渲染异常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 10:36:24