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

React Router v6给Route传路径数组报错问题求助

React Router v6 中 Route 路径数组报错的解决办法

问题原因

React Router v6 重构了路由匹配逻辑,单个 <Route> 组件的 path 属性不再支持传入数组。旧版本(v5及更早)搭配 <Switch> 时允许这种写法,但v6移除了该特性,直接传数组会触发 meta.relativePath.startsWith is not a function 错误。

解决方案

方案1:拆分多个 Route 组件

为每个路径单独声明 Route,复用同一个组件元素:

<Route path="/search" element={<Results />} />
<Route path="/images" element={<Results />} />
<Route path="/news" element={<Results />} />
<Route path="/videos" element={<Results />} />

方案2:使用 useRoutes 钩子

通过路由配置数组实现多路径对应同一组件,适合路径较多的场景:

import { useRoutes } from 'react-router-dom';

function AppRoutes() {
  const routes = useRoutes([
    {
      path: ['/search', '/images', '/news', '/videos'],
      element: <Results />
    }
    // 其他路由配置...
  ]);
  return routes;
}

// 在根组件中渲染
function App() {
  return (
    <BrowserRouter>
      <AppRoutes />
    </BrowserRouter>
  );
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 11:31:14