我正在構建一個基於reactjs,redux和react-router(redux-simple-router)的網站,而且我很難理解如何根據用戶的身份驗證來共享根路徑。如何使用reactjs,redux和redux-simple-router根據auth狀態共享根URL?
我正在看這個例子https://github.com/reactjs/react-router/tree/master/examples/auth-with-shared-root,但說實話,我無法得到它的作品。
我有兩種不同的佈局。第一個是公共佈局,當用戶沒有通過驗證時顯示。從這裏您可以訪問登錄頁面和註冊。
用戶獲得認證後,我想向他展示內部應用程序,這是一個完全不同的佈局,但在同一個根URL中進行。
當用戶沒有通過驗證:
<Route path='/' name='homepage' component={SiteLayout}>
<IndexRoute component={HomeView} />
<Route path='/login' name='login' component={LoginView} />
<Route path='/join' name='join' component={RegistrationView} />
<Route path='/404' component={NotFoundView} />
<Redirect from='*' to='/404' />
</Route>
和認證後,保持相同的根URL。
<Route path='/' name='feeds' component={InternalLayout}>
<IndexRoute component={FeedsView} />
<Route path='/profile' name='login' component={ProfileView} />
<Route path='/settings' name='join' component={SettingsView} />
<Route path='/search' name='join' component={SearchView} />
</Route>
它就像Facebook一樣。
我的問題是(和如果你可以提供一個例子,它會很棒):根據身份驗證狀態,我如何在同一個URL下呈現不同的佈局?
PD:我有一個令牌類,我在那裏存儲身份驗證狀態(JWT),方法hasToken。
在這個例子中,我使用的是JSX語法,我不知道是否必須切換到配置語法來獲得所需的結果。
任何幫助表示讚賞。
謝謝。這正是我所期待的。 –