我正在构建多语言网站,其中语言偏好是网址的一部分,例如
http://example.com/<somepage> (Russian,default) http://example.com/en/<somepage> (English) http://example.com/jp/<somepage> (Japanese) http://example.com/../ (etc)
当我为所有语言使用前缀时,一切都很好:
<Route path="/:lang"> <Route path="somepage" component={Somepage}/> </Route>
但是对于默认语言,我不需要在url中包含语言,如示例所示.
在可焊接路由器中,可以通过在路径中使用regexp来解决:
path: '/:lang([a-z]{2})?/<somepage>'
但它在反应路由器中不起作用,因为路径必须是字符串,而不是正则表达式.
任何想法如何处理这个用例?
你试过重复路线吗?到目前为止似乎对我有用.
原文链接:https://www.f2er.com/react/300863.htmlvar innerRoutes = ( <Route> <Route path="somepage" component={Somepage}/> <Route path="otherpage" component={Otherpage}/> </Route> ); var routes = ( <Route path="/" component={App}> {innerRoutes} <Route path=":lang"> {innerRoutes} </Route> </Route> );