2017-06-06 164 views
0

我的路由配置是这样的:阵营路由器V4嵌套

[ 
    { 
     path: '/', 
     exact: true, 
     component: Dashboard 
    }, 
    { 
     path: '/stories/:storyId', 
     component: Story, 
    }, 
    { 
     component: Dashboard, 
     status: 404 
    } 
] 

现在故事构件的内部我想呈现一个画廊,每一张照片都需要有自己的网址。有这样的事情:

<Switch> 
    <Redirect from={match.url} to={`${match.url}/1`} /> 
    <Route path={`${match.url}/:photoId`} render={this.renderGallery } /> 
</Switch> 

不幸的是,它进入一个无限循环,导致match.url在重定向后永不改变。

有人可以帮助我吗?谢谢

回答

0

<Redirect>上的from默认匹配松散。正如你所拥有的,它将匹配match.url中的任何内容,其中包括你的$ {match.url}/1路径。

在Switch内部,它实际上是直接读取其孩子的道具,并且不区分组件类型。所以,you can use exact and strict就像你可以在一条路线上。

因此,这应该为你工作:

<Switch> 
    <Redirect exact from={match.url} to={`${match.url}/1`} /> 
    <Route path={`${match.url}/:photoId`} render={this.renderGallery } /> 
</Switch> 
+0

太谢谢你了! –