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因为它保持打开状态以供用户配置