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

React给li指定key={Date.now()}后渲染未生效且报缺key错是什么原因

报错原因

  • key 是React专门用于列表Diff算法的特殊保留属性,不会被渲染到真实DOM上,所以你在生成的li标签里看不到key属性是正常表现,这不是导致报错的诱因。
  • key 必须绑定在列表循环渲染时的组件/元素实例上,不能写在组件内部返回的根元素上,你当前把key写在TaskContainer内部的li标签的写法完全无效。正确写法示例:
// 父组件遍历任务列表渲染TaskContainer时添加key
{this.state.taskList.map(taskItem => (
  <TaskContainer 
    key={taskItem.uniqueId} 
    text={taskItem.text}
  />
))}
  • 你使用Date.now()作为key的写法是错误的,key需要满足「列表内唯一、值稳定不变」的要求,每次渲染都生成新的Date.now()等于完全失去了key的标识作用,反而会触发额外的重渲染甚至报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 03:30:03