在Reaction-Router-DOM6中,我使用的是useRoutes
,因此我构建了一个路由对象.我有一条路由,我希望路由的顶部有一个布局,然后根据参数不同的网点.
因此,例如:
/wizard/step1 -> Step1Page
/wizard/step2 -> Step2Page
我建造这个的方式,看起来是这样的:
const routes = [
{
path: '/wizard/:step',
element: <WizardLayout />, // this has an <Outlet />
children: [
{
path: '/wizard/step1',
element: <Step1Page />,
},
{
path: '/wizard/step2',
element: <Step2Page />,
},
],
},
];
这会抛出一个错误,即子路径"必须以其父路径的完整路径开始".这意味着布局应具有如下路径:
{
path: '/wizard',
element: <WizardLayout />,
children: [ ... ],
}
但是,这样做会导致子元素在调用useParams
时无法识别:step
参数,因为它实际上并未在路径中定义.
重申一下,我希望布局应用于类型为/wizard/:step
的所有路由,并在特定的:step
参数中包含特定的元素.我该怎么做?