0

所以我有一个本地化的站点,并且在某些情况下需要重定向路由。例如,如果用户的用户界面设置为西班牙语,并且转到mysite.com/about,则需要将其重定向到mysite.com/es/about在组件生命周期中重定向react-router-redux推送

所以基本上,路由通过<Route>部件从反应路由器复制:

{Object.values(UILanguages).map(locale => { 
    return (
    <Route path={`${locale.basepath}`} key={locale.basepath} locale={locale} component={App} status={200}> 
     ...routes go here 
    </Route> 
) 
})} 

这将是足够简单的<App>componentWillMount生命周期方法中的检查,以找出是否我的错<Route>组件,但是我不得不在我的应用程序中添加每一个链接,这是我不想做的。相反,我希望动态重定向外语,如第一段所示。

这怎么可能?

回答

0

使用反应路由器挂钩,它会比使用组件生命周期更清洁(更小的组件)并更简单。

https://github.com/ReactTraining/react-router/blob/master/docs/API.md#onenternextstate-replace-callback

你的情况

你需要使用所有的3个参数,因为第一个是下一个状态,二是要进行重定向,第三个是一个回调,当你完成测试值调用。 我可以给你如何使这个个例,但我真的不知道你的应用程序是如何组织这样反而检查此链接,这对我帮助很大:

https://www.youtube.com/watch?v=JicUNpwLzLY&t=359s

希望这有助于!

ps:在某些情况下,您还需要定义onChange挂钩例如:分页...