React-Router 4.0.0.alpha6中的部分重定向

时间:2017-01-25 03:34:51

标签: reactjs react-router url-redirection

在react-router 4.0.0.alpha6 中,我想实现这个目标:

site.com/en -> site.com
site.com/en/hi -> site.com/hi
site.com/en/hi/there -> site.com/hi/there

我该怎么办? 我已经从文档中尝试了很多但似乎无法让它悲伤地工作......

感谢您阅读!

1 个答案:

答案 0 :(得分:1)

注意:当你提到v4 alpha时,我将使用beta代码(未发布,但可以通过回购中的v4分支获得)。

基本上您要做的是识别以段pathname开头的任何en,将其从其余的网段中拆分,然后重定向到{{1的其余部分}是的。

作为正则表达式,您可以将其与pathname匹配。 React Router使用/^\/en(\/.*)?$/匹配路径名,它支持正则表达式,但React Router不支持(至少不直接)。您仍然可以使用未命名的参数配置与此匹配的路径。

path-to-regexp

应与<Route path='/en(/*)' component={EnRedirect} /> /en/en相匹配,但不应与/en/hi相匹配。接下来,在组件中,您需要将匹配的/english拆分为细分,移除url,重新加入细分,然后重定向。

en