匹配特定字符串或为空的可选路由路径

时间:2018-06-21 17:47:51

标签: reactjs react-router react-router-v4

我想利用与/clientclient/upload完全匹配的路由器路径,以便正确地Redirect我的组件。我知道,要编写可选的参数,您会像这样

<Redirect exact from={`${match.path}(/:id)?`} to={`${match.url}/upload/view`} />

但是现在我希望仅将路径参数上传,所以我将其写为

<Redirect exact from={`${match.path}/:id(|upload)`} to={`${match.url}/upload/view`} />

可以从'/ client / upload'和${match.path}/正确重定向到${match.path}/upload/view,但不能与${match.path}一起使用。

我也尝试过${match.path}(/:id(|upload))?${match.path}/?:id(|upload)'${match.path}(/upload)?,但是它们都不起作用

我希望${match.path}${match.path}/${match.path}/upload重定向到'${match.url}/upload/view

目前,我正在编写两个不同的重定向,例如

<Redirect exact from={match.path} to={`${match.url}/upload/view`} />
<Redirect exact from={`${match.path}/upload`} to={`${match.url}/upload/view`} />

但是我真的只想写一个Redirect

我们非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

<Redirect exact from='/client(/upload)?' to='/client/upload/view' />

这应该可以解决您的问题,因为它说精确的/client/client/upload匹配,并将被重定向到 to 参数中定义的路径。