在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
我该怎么办? 我已经从文档中尝试了很多但似乎无法让它悲伤地工作......
感谢您阅读!
答案 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