第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

react異步獲取的數(shù)據(jù),如何根據(jù)異步數(shù)據(jù)設(shè)置對(duì)應(yīng)的state合理?

react異步獲取的數(shù)據(jù),如何根據(jù)異步數(shù)據(jù)設(shè)置對(duì)應(yīng)的state合理?

溫溫醬 2019-03-08 18:08:30
描述: 比如異步獲取初始化數(shù)據(jù)為1,則設(shè)置state.isShow為true否則為false;render函數(shù)里根據(jù)state.isShow設(shè)置是否渲染元素A,并渲染一個(gè)有click事件的元素B切換state.isShow問題: 比如我在componentWillUpdate里判斷異步獲取的初始化數(shù)據(jù)設(shè)置state.isShow為true,但是這樣我的click切換將會(huì)失效,因?yàn)槊看胃聲r(shí)都會(huì)根據(jù)初始化數(shù)據(jù)1設(shè)置state.isShow為true,我就必須在判斷異步數(shù)據(jù)之前加上if (this.state.isShow != nextState.isShow) return; 雖然這樣可以實(shí)現(xiàn),但是我感覺實(shí)現(xiàn)方式不夠簡(jiǎn)潔,如果有很多個(gè)類似isShow我就要寫好多個(gè)判斷。想知道合理的實(shí)現(xiàn)方式是怎樣?應(yīng)該在哪個(gè)生命周期里判斷異步獲取的數(shù)據(jù)或者在接受到props傳來的異步數(shù)據(jù)后應(yīng)該怎樣做?
查看完整描述

1 回答

?
PIPIONE

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超9個(gè)贊

componentWillUpdate是組件在非第一次即將render時(shí)執(zhí)行,所以componentWillUpdate不可能及時(shí)的獲取到的異步數(shù)據(jù)
異常數(shù)據(jù)的改變是props,所以應(yīng)該放在componentWillReceiveProps中。

根據(jù)你的描述呢,直接把isShow作為props放到render中就可以了。沒必要將props先轉(zhuǎn)化為state,再處理。因?yàn)?code>props改變時(shí),component也會(huì)render的。


查看完整回答
反對(duì) 回復(fù) 2019-03-09
  • 1 回答
  • 0 關(guān)注
  • 992 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)