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掛鉤例如:分頁...