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

React Router 6.6 + TypeScript报错:children属性不存在如何解决?

React Router 6.6 + TypeScript:RouterProvider children属性错误修复

问题原因

React Router 6.4及以上版本引入的RouterProvider组件(配合createBrowserRouter等新路由API)不再支持通过children传递组件,所有路由组件必须定义在路由配置对象的routes数组中,这是触发TypeScript报错的核心原因。

修复步骤

  1. 调整路由配置文件(比如router.ts),将<App>作为根路由的element属性值,整合到路由配置里:
import { createBrowserRouter } from 'react-router-dom';
import App from './App';
// 按需导入其他路由组件,比如About、Home等

export const router = createBrowserRouter([
  {
    path: '/',
    element: <App />,
    // 如果App里有<Outlet>,可以在这里添加子路由
    children: [
      // { path: 'home', element: <Home /> },
      // { path: 'about', element: <About /> }
    ]
  }
]);
  1. 修改index.tsx,移除RouterProvider的children属性:
import React from 'react';
import ReactDOM from 'react-dom/client';
import './index.css';
import { RouterProvider } from 'react-router-dom';
import { router } from './router';

const root = ReactDOM.createRoot(
  document.getElementById('root') as HTMLElement
);

root.render(
  <RouterProvider router={router} />
);

补充说明

如果你的App组件内原本包含<Outlet>组件(用于渲染子路由内容),这种结构完全适配新的路由配置方式,只需要确保路由配置中的children数组与Outlet的位置对应即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 23:05:18