在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/HTML5  HTML/ 關(guān)于阻塞react render的問(wèn)題

關(guān)于阻塞react render的問(wèn)題

情況是這樣的,登錄后,我將用戶(hù)的token存在了localStorage中,然后用戶(hù)刷新或者重啟瀏覽器后,我會(huì)在在初始化的時(shí)候從localStorage中取出token,然后發(fā)送一個(gè)攜帶token的請(qǐng)求到后臺(tái),然后根據(jù)返回token是否過(guò)期的結(jié)果,來(lái)決定是否重定向到登錄頁(yè)面,現(xiàn)在的問(wèn)題是,render()不會(huì)等待我的請(qǐng)求,

那請(qǐng)問(wèn)怎么實(shí)現(xiàn),讓render等待我的請(qǐng)求呢?

<Auth path="/exchangeRecord" component={ExchangeRecord} />

ExchangeRecord是一個(gè)組件,Auth是用來(lái)攔截的容器組件

clipboard.png

回答
編輯回答
囍槑

為什么不用cookie ?

2017年4月19日 00:59
編輯回答
凹凸曼

同樓上。。。用個(gè)條件變量,開(kāi)始不要渲染組件

2018年2月27日 09:40
編輯回答
葬愛(ài)

在前后端分離的情況下,不建議cookiesession。fetch默認(rèn)都不會(huì)帶cookie的。
樓主說(shuō)的思路沒(méi)有問(wèn)題,也是通用解決方案。
就是為什么要讓render等待fetch呢?完全沒(méi)有必要。
你可以嘗試如下操作:
頁(yè)面跳轉(zhuǎn)或者加載組件依賴(lài)接口返回的數(shù)據(jù)時(shí),你就等到fetch返回再操作,就是放到then中,這之前再加一級(jí)then,在此判斷返回狀態(tài)。
所以,當(dāng)服務(wù)端判斷token失效,返回一個(gè)特定的狀態(tài)碼。在then中直接處理掉,一般history.push(login page),然后清除localstorage.

2017年11月17日 21:31
編輯回答
練命

謝邀,我有同樓上的疑問(wèn),為什么不用cookie,如果用cookie的話(huà),每次請(qǐng)求都會(huì)帶上的,而且cookie可以設(shè)置失效時(shí)間。

當(dāng)然,我們的建議是我們的建議,問(wèn)題還是要幫忙的,畢竟誰(shuí)沒(méi)幾個(gè)坑的需求呀。

最簡(jiǎn)單,用同步的方法發(fā)請(qǐng)求,直接給瀏覽器掛起,驚不驚喜意不意外。

其他的方式,不渲染組件就不會(huì)執(zhí)行咯。那你當(dāng)然是等ajax的請(qǐng)求返回直接再開(kāi)始渲染組件啦。加個(gè)loading動(dòng)畫(huà)什么的

2018年5月8日 23:27