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

React项目构建报错:Property 'key'不存在于IntrinsicAttributes & RouteProps类型

解决React+TypeScript项目中Route组件key属性类型报错问题

问题原因

这个报错是因为react-router-dom v6+ 的类型定义不再允许给Route组件传递key属性。你上周没问题,大概率是最近项目依赖升级(比如自动升级了react-router-dom版本),或者之前使用的旧版本类型定义有宽松处理,现在严格校验了。

具体解决方法

根据你的代码场景分两种情况处理:

1. 循环渲染多个Route组件

如果是通过map等方式动态生成Route列表,不要把key直接传给Route,而是把Route包裹在Fragment(或<>)中,将key放在外层Fragment上:

错误示例:

// 报错代码
routes.map(route => (
  <Route key={route.id} path={route.path} element={route.element} />
))

修正后:

routes.map(route => (
  <React.Fragment key={route.id}>
    <Route path={route.path} element={route.element} />
  </React.Fragment>
))
// 或者用简写形式
routes.map(route => (
  <>
    <Route path={route.path} element={route.element} />
  </>
))

2. 单个Route组件手动添加了key

如果是给单个Route加了key,直接删除key={key}即可——React Router v6会自动处理路由匹配,单个Route不需要额外设置key。

验证版本(可选)

可以查看package.json确认react-router-dom的版本:

{
  "dependencies": {
    "react-router-dom": "^6.x.x"
  }
}

如果确实是v6+,按照上面的方法修改代码即可解决类型报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 23:02:09