2017-06-19 129 views
2

我正在使用react路由器v4並嘗試實施受保護的api視圖。例如,如果用戶在未登錄的情況下轉到/add/網址,他們將被重定向到/login/,然後成功登錄到/add/React Router v4在瀏覽器刷新刷新後登錄檢查

我能夠使用想法from this post實現它。但是,每當加載應用程序的初始http請求來自受保護的url時,我都會遇到問題。

E.g.當我在瀏覽器中輸入'/add/'並回車時,我遇到了異步問題,我的應用程序沒有時間向服務器發出ajax請求以檢查登錄,結果路由器最終路由到/login/,因爲ajax授權請求尚未完成。

有人可以推薦登錄工作流應該一般處理,考慮到事實上,用戶可能會啓動他們的會話上受保護的網址,如'/add/',而不是在家裏'/'

回答

2

找到了一個簡單的標準React模式解決方案。除非在ajax檢查中的日誌已經完成,否則不要渲染<Route>組件。

所以,當應用程序加載的第一次,初始化狀態checkingLogIntrue,除非它變得false不提供任何<Route>組件。當檢查登錄的ajax功能完成時,請致電setStatecheckingLogIn設置爲false。這將導致<Route>呈現並正確重定向。