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

迁移react-router-dom v5至v6遇LoadableComponent类型不兼容错误

解决React Router v6迁移中@loadable/component的类型错误

问题根源

  1. React Router v6的<Route>组件element属性要求传入ReactNode(即渲染后的组件实例),但你直接传入了loadable返回的组件类型(组件类/函数本身),导致类型不匹配。
  2. 开发依赖中的@types/react-router-dom仍为v5版本,和实际使用的v6库版本不一致,进一步引发类型推断错误。

解决方案

1. 修正Route的element属性写法

将组件类型改为JSX实例形式,同时根路径无需使用/*(v6默认精确匹配根路径,原v5的exact属性已移除):

// App.tsx
import * as router from 'src/routes';

<Route path="/" element={<router.Home />} />

2. 升级React Router v6的类型依赖

更新@types/react-router-dom到与当前react-router-dom匹配的v6版本,执行命令:

npm install @types/react-router-dom@^6.6.2 --save-dev
# 若使用yarn
yarn add @types/react-router-dom@^6.6.2 --dev

验证

修改完成后重新编译项目,类型错误即可消除。@loadable/component返回的组件以JSX实例形式传入时,会被正确识别为ReactNode,符合v6版本Route组件的要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 07:50:22