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

已添加唯一key prop仍报错?React列表key问题求助

解决React列表渲染的"key" prop警告问题

你遇到的问题根源是key属性加错了位置:React要求列表循环中返回的顶层元素必须拥有唯一key,而不是它的子元素。

你的代码里,map循环返回的直接元素是<React.Fragment>,但你把key={user._id}加在了Fragment内部的<div>上,React无法识别这个key,所以依然会抛出警告。

修改后的代码:

render() {
  return (
    <div className="App">
      {this.state.users.map((user) => {
        return (
          // 把key移到React.Fragment上
          <React.Fragment key={user._id}>
            <div className="box">
              <h3>{user.name}</h3>
              <h4>{user.email}</h4>
              <button
                onClick={() => {
                  this.beginEdit(user);
                }}
              >
                Update
              </button>
              
              <button
                onClick={() => {
                  this.deleteUser(user);
                }}
              >
                Delete
              </button>
            </div>
          </React.Fragment>
        );
      })}
      {this.renderAddUser()}
    </div>
  );
}

关键说明:

  • 当使用map生成列表时,React会将每个循环返回的最外层元素视为列表项的标识,因此key必须绑定在这个最外层元素上。
  • 如果你用的是Fragment的短语法<>...</>,是无法添加key属性的,必须显式写出<React.Fragment>才能绑定key。

修改后,控制台的"key" prop警告就会消失。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 15:15:37