我想渲染一個基於外部條件的組件,否則在應用程序的其他地方重定向。什麼是在React組件中執行重定向的適當生命週期階段?
理論上講,該重定向將組件之前決定,但在某些情況下,我覺得我需要做到這一點的組件。例如,在ReactRouter,路由器可能是這樣的:
<Router>
<Route path='/' component={LoadingPage} />
<Route path='/Home' component={HomePage} />
<Route path='/Login' component={LoginPage} />
</Router>
,爲LoadingPage邏輯/ sudocode會是這樣的:
if (stillLoading) {
render
} else if (loggedIn) {
redirectToHome
} else {
redirectToLogin
}
它變得複雜,因爲有時應用程序是在請求組件之前已經加載。
什麼生命週期階段是放置此重定向邏輯最合適的地方?
- 渲染/從Render調用的方法? (似乎很奇怪)
- ComponentDidMount +爲以後製作事件偵聽器?
- GetInitialState? (但不應該有副作用?)
- ComponentWillMount?
- 其他?
退房'onEnter'在陣營路由器文檔,並且認證流例如,在回購 – knowbody
@knowbody - 真棒!這正是我要找的。所以答案確實是空的 - 在組件開始之前做重定向 – eedrah