Reactjs 路由器中的“通配符”

问题描述 投票:0回答:1

我建立了以下路线:

const router = createBrowserRouter(
    createRoutesFromElements(<>
    <Route path={`/:siteid/login`} element={< LoginLayout/>}>       
<>)

当然

/test/login
效果很好,但我想对
/test/again/login
使用相同的路由 有没有办法让路由适用于两个 URL,而无需创建不同的路由路径。

使用最新版本的

react-router-dom

谢谢

reactjs react-router
1个回答
0
投票

不,在以前的版本中

path
可以接受“别名”数组。不幸的是,这种情况已经不存在了,你必须自己做。如果您有很多别名,请考虑创建一个带有循环的数组,然后将其传递给
createBrowserRouter


但是您似乎正在尝试添加一个“可选片段”,您可以使用

?
:

来捕获它
const router = createBrowserRouter(
    createRoutesFromElements(<>
    <Route path={`/:siteid/:optional?/login`} element={< LoginLayout/>}>       
<>)

应与您的两条路线相匹配。

© www.soinside.com 2019 - 2024. All rights reserved.