Reactjs React路由未检测嵌套路由和ID
我有一些反应路线,当我将一条路线嵌套在另一条路线中时,我需要重复路线路径 例如,解释:Reactjs React路由未检测嵌套路由和ID,reactjs,react-router,Reactjs,React Router,我有一些反应路线,当我将一条路线嵌套在另一条路线中时,我需要重复路线路径 例如,解释: <Route path="admin"> <Switch> <Route path="admin/specific/:id" component={SpecificAdmin} /> <Route
<Route
path="admin">
<Switch>
<Route
path="admin/specific/:id"
component={SpecificAdmin} />
<Route
exact
path="admin"
component={AdminPage}>
</Route>
<Route
exact
path="admin/edit/new"
component={EditSpecificAdmin} />
</Switch>
</Route>
我想要一个页面,我可以看到项目列表,一个用于添加新项目,另一个用于查找、编辑特定项目。所以我考虑了路径edit/new
和specific/1
。
因此,当我写入
specific/1
(特定id)时,路由不会检测到,也不会检测到管理员嵌套,因此我需要在每个路径中写入管理员…我认为您可以使用location.pathname
或match.url
从props
获取当前页面的url。你可以看到我的形象。然后,您可以在此之后添加嵌套路由。希望对你有帮助
您可以这样对路径进行编码
path=`${this.props.location.pathname}/edit/new`
path=`${this.props.location.pathname}/specific/:id`
我认为您可以使用
location.pathname
或match.url
从props
获取当前页面的url。你可以看到我的形象。然后,您可以在此之后添加嵌套路由。希望对你有帮助
您可以这样对路径进行编码
path=`${this.props.location.pathname}/edit/new`
path=`${this.props.location.pathname}/specific/:id`
正如塔里克·阿齐兹(Tareq aziz)所说,你可以很容易地在道具中加入英特尔 您可以创建另一个路由器以轻松传递新值:
//您的原始组件
从“./Admin/Router”导入AdminRouter;
导出默认值()=>{
返回(
);
}
//在./Admin/Router.js中
导出默认值(道具)=>{
返回(
);
}
不过我不确定路线的顺序是否正确。正如塔里克·阿齐兹所说,你可以很容易地在道具中使用英特尔 您可以创建另一个路由器以轻松传递新值:
//您的原始组件
从“./Admin/Router”导入AdminRouter;
导出默认值()=>{
返回(
);
}
//在./Admin/Router.js中
导出默认值(道具)=>{
返回(
);
}
但是我不确定路由的顺序是否正确。您是否可以共享完整的代码,以便任何人都可以重新创建您的问题?基本上,您希望传递到嵌套路由“/specific/:id”、“/”、“/edit/new”。是这样吗?@ThomasBihan Poudec yesas@tareqAziz answer,你可以在道具中获得一些英特尔,在我的一个项目中,我为嵌套路由创建了另一个路由器。ie:在您的项目中,我将创建一个AdminRouter组件,并以path={
${match.path}/specific/:id
}的形式传递传递传递传递,etcI认为match.path
将返回/something/:id
,它实际上是一种格式,而不是当前页面的部分url。相反,match.url
将返回/something/1
或/something/anything
,可以用作当前页面的url。您可以共享完整的代码以便任何人都可以重新创建您的问题吗?基本上,您想要的是传递到嵌套的路由“/specific/:id',“/”,“/edit/new”。是这样吗?@ThomasBihan Poudec yesas@tareqAziz answer,你可以在道具中获得一些英特尔,在我的一个项目中,我为嵌套路由创建了另一个路由器。ie:在您的项目中,我将创建一个AdminRouter组件,并以path={${match.path}/specific/:id
}的形式传递传递传递传递,etcI认为match.path
将返回/something/:id
,它实际上是一种格式,而不是当前页面的部分url。相反,match.url
将返回/something/1
或/something/anything
,可以用作当前页面的url,这很好,但我试图理解为什么路由不通过itself@PichiWuana因为它对用户的配置是开放的,这很好,但我试图理解为什么路由不这样做这个itself@PichiWuana因为它保持打开状态以供用户配置