我具體描述下問題產(chǎn)生的原因吧?,F(xiàn)在有三個組件(暫定a、b、c)去實現(xiàn)一個用戶認(rèn)證的功能。a組件是父組件(相對b、c,a組件外面還有父組件),負(fù)責(zé)接收父組件傳遞下來用戶的認(rèn)證信息,b組件是用戶用來填寫信息的地方,c組件是表示用戶的認(rèn)證狀態(tài)(未認(rèn)證、審核、已認(rèn)證、認(rèn)證失敗,分別對應(yīng)狀態(tài)為0,1,2,-1)。假如用戶認(rèn)證失敗了,c組件內(nèi)部會有一個按鈕,讓用戶重新認(rèn)證(切換b、c組件)。我一開始寫的時候是這么想的:提取一個狀態(tài)到a組件中(暫定show),show的值是根據(jù)a組件傳遞下來的認(rèn)證狀態(tài)(props)來確定的,通過show來改變應(yīng)該展示哪個組件。當(dāng)用戶認(rèn)證失敗的時候點擊c組件中的“重新認(rèn)證”,通過回調(diào)函數(shù)改變父組件show的狀態(tài),完成b、c組件的切換。問題就出現(xiàn)在這個show上(暫定true顯示b組件,false顯示c組件),show的默認(rèn)值為true(讓用戶輸入信息)。我在a組件的componentWillReceiveProps里面去改變show的狀態(tài)(didMount拿不到props,render里面不能操作state)。現(xiàn)在不論用戶是否通過認(rèn)證了,a組件加載的時候默認(rèn)展示的都是b組件,因為componentWillReceiveProps沒有被調(diào)用。刷新頁面之后才會展示c組件?,F(xiàn)在我能想到的解決辦法就是讓a組件去拿數(shù)據(jù),然后確定show的狀態(tài)。我想問下各位大神,還有更好的辦法幫我實現(xiàn)這個功能嗎?補一張圖吧,看的清楚點
react 的問題,標(biāo)題不知怎么起...
寶慕林4294392
2018-11-21 17:13:09