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

React Router 6 + TypeScript:Route组件index属性类型报错求助

React Router 6 + TypeScript 解决<Route> index属性类型错误问题

问题重现

使用如下代码时出现TypeScript报错:

<Routes>
    <Route index>
        <h1>Here</h1>
    </Route>
</Routes>

报错信息:Type 'true' is not assignable to type 'false'.ts(2322)

原因分析

React Router 6中,index属性的作用是标记父路由的默认子路由,它不能作为独立的顶级路由存在。TypeScript的类型定义严格遵循这一设计:当路由直接放在<Routes>下(无父路由)时,index属性只能为false或不声明,因为顶级路由必须指定明确的path,无法作为默认子路由。

解决方案

方案1:根路由默认页面用path="/"替代index

如果这是网站根路径的默认页面,直接给路由指定path="/"即可:

<Routes>
  <Route path="/">
    <h1>Here</h1>
  </Route>
</Routes>

方案2:嵌套场景下将index路由放在父路由的children中

如果是嵌套路由的默认子路由,必须把它嵌套在带path的父路由内部:

<Routes>
  <Route path="/dashboard" element={<DashboardLayout />}>
    <Route index>
      <h1>Dashboard Home</h1>
    </Route>
    <Route path="settings" element={<SettingsPage />} />
  </Route>
</Routes>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 16:57:22