日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

javascript - react 的問題,標題不知怎么起...

瀏覽:272日期:2023-06-02 10:23:07

問題描述

我具體描述下問題產生的原因吧。現(xiàn)在有三個組件(暫定a、b、c)去實現(xiàn)一個用戶認證的功能。a組件是父組件(相對b、c,a組件外面還有父組件),負責接收父組件傳遞下來用戶的認證信息,b組件是用戶用來填寫信息的地方,c組件是表示用戶的認證狀態(tài)(未認證、審核、已認證、認證失敗,分別對應狀態(tài)為0,1,2,-1)。假如用戶認證失敗了,c組件內部會有一個按鈕,讓用戶重新認證(切換b、c組件)。

我一開始寫的時候是這么想的:提取一個狀態(tài)到a組件中(暫定show),show的值是根據a組件傳遞下來的認證狀態(tài)(props)來確定的,通過show來改變應該展示哪個組件。當用戶認證失敗的時候點擊c組件中的“重新認證”,通過回調函數(shù)改變父組件show的狀態(tài),完成b、c組件的切換。問題就出現(xiàn)在這個show上(暫定true顯示b組件,false顯示c組件),show的默認值為true(讓用戶輸入信息)。我在a組件的componentWillReceiveProps里面去改變show的狀態(tài)(didMount拿不到props,render里面不能操作state)。現(xiàn)在不論用戶是否通過認證了,a組件加載的時候默認展示的都是b組件,因為componentWillReceiveProps沒有被調用。刷新頁面之后才會展示c組件。現(xiàn)在我能想到的解決辦法就是讓a組件去拿數(shù)據,然后確定show的狀態(tài)。我想問下各位大神,還有更好的辦法幫我實現(xiàn)這個功能嗎?

補一張圖吧,看的清楚點javascript - react 的問題,標題不知怎么起...

問題解答

回答1:

a:

//構造器內this.state = { show:true}//class內changeState(){ this.setState({show:false})}//render內const c_props = {changeState}<C {...c_props}/>

c:

onclick(){ this.props.changeState();}回答2:

應該有一個組件去決定是否要進行用戶認證,如果你想讓登錄組件全部包攬這個邏輯,那你需要一個加載狀態(tài),剛開始的時候處于加載中,什么都不顯示。所謂加載就是決定是否要認證(發(fā)API請求等等),加載完畢后就可以決定是否要認證。

didMount拿不到props

我100%保證 componentDidMount() 是可以拿到props參數(shù)的,通過 this.props 獲取,但是componentDidMount() 只在組件創(chuàng)建時調用一次,通常情況下如果要加載數(shù)據就在 componentDidMount() 里執(zhí)行。

回答3:

show為什么要是a組件的state?你把show當作render函數(shù)中的一個局部變量就行了。

假定a組件從props里傳遞過來的認證狀態(tài)變量命名為 auth,你的 a 組件render方法可以這樣寫:

class A extends Component { render () { let show = this.props.auth === 2; // 0 1 2 -1 return ( <p> {show && <p>component B</p>} {!show && <p>component C</p>} </p> ); }}

========= 更新 =========

第一次沒看到你的C組件居然還有一個回調箭頭來改變A組件的show!

對,這一步也是錯誤的設計。

A組件得到的認證信息是A組件的父組件傳遞下來的,那么這個show就應該要唯一依賴于這一個信息的,C組件具有改變這個認證信息的功能,那么,A組件有義務把這個改變通知給A組件的父組件,而不是私自地悄么聲地改變自己組件的state,即你在這里設定的show這個state,就草草了事。試想,這個時候,A組件得到的props是認證失敗,渲染了C組件,C組件有重新認證的功能,用戶重新認證成功,C組件又通知A組件認證成功了,這個時候A組件要相信誰?props和state就不同步了!更慘的是A組件的父組件,他還傻乎乎地以為自己拿到的是正確的信息,還通過props告訴A組件,用戶認證失敗啦,殊不知A組件已經串通他底下的小弟,把認證信息都給改了!倘若這個時候A組件有個兄弟叫A2組件,A2也通過props從他們共同的父組件接收認證信息,那就會出現(xiàn)A和底下一幫家伙悄悄重新認證了,而A的父親和兄弟還蒙在鼓里,頁面顯示就不一致啦!

正確的設計是,A組件在接收到C組件重新認證成功的事件通知,需要把這個通知繼續(xù)往上傳遞,告訴A組件的父組件,父組件接收到這個事件,改變他自己的狀態(tài),進而改變傳遞給A組件的props,A組件props改變,導致A組件重繪,從而replace C with B。

認證信息只能保存一份,你的例子里,認證信息放在A組件的父組件里,因此,要修改這個認證信息,也應該在A組件的父組件里完成。因此,這個show其實只是一個根據props產生的中間變量,根本無需設計成A的state。

如果你用redux就沒有這個疑惑了。

標簽: JavaScript
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
999国产精品| 激情综合激情| 亚洲欧美日韩国产综合精品二区| 在线看片国产福利你懂的| 国产精品igao视频网网址不卡日韩| 亚洲欧洲专区| 欧美视频久久| 国产欧美日韩精品一区二区免费| 欧美视频二区| 国产精品多人| 日本激情一区| 久久精品导航| 丝瓜av网站精品一区二区| 日韩欧美高清一区二区三区| 中文一区一区三区免费在线观 | 国产一二在线播放| 99久久婷婷这里只有精品| 欧美+亚洲+精品+三区| 免费成人性网站| 国产免费播放一区二区| 91日韩免费| 丝袜美腿亚洲一区| 国产精品久久久久久久久久白浆| 国产成年精品| 久久国产福利| 日韩综合一区| 亚洲免费成人av在线| 日韩av成人高清| 天堂√中文最新版在线| 免费国产亚洲视频| 中文在线а√天堂| 一本一道久久a久久| 国产aⅴ精品一区二区三区久久| 国产精品日本欧美一区二区三区| 美女久久久久久 | 欧美精品自拍| 国产精品sss在线观看av| 在线一区电影| 久久亚洲人体| 亚洲天堂日韩在线| 日本高清不卡一区二区三区视频| 香蕉国产精品| 免费一二一二在线视频| 欧美日韩一区二区三区不卡视频 | 蜜臀av性久久久久蜜臀aⅴ流畅| 免费看一区二区三区| 先锋影音久久久| 视频二区不卡| 国产精品成人自拍| 蜜臀久久99精品久久久画质超高清| 日韩不卡免费高清视频| 久久99免费视频| 日韩欧美激情| 亚洲图片久久| 亚洲另类av| 中文无码日韩欧| 免费成人在线影院| 欧美中文字幕| 午夜在线一区| 蜜臀av一区二区在线免费观看| 1000部精品久久久久久久久| 私拍精品福利视频在线一区| 群体交乱之放荡娇妻一区二区| 国产精品乱战久久久| 国产视频一区二| 国产乱人伦精品一区| 日韩av电影一区| 69堂精品视频在线播放| 日韩精品五月天| 欧美精品二区| 国产美女高潮在线观看| 亚洲第一精品影视| 神马日本精品| 先锋影音国产一区| 日韩精品欧美成人高清一区二区| 日韩高清不卡一区二区| 国产精品麻豆成人av电影艾秋 | 蜜桃精品视频| 欧美激情国产在线| 欧美日韩精品在线一区| 亚洲在线免费| 国产欧美日韩在线观看视频| 国产一区二区三区久久| 久久久久蜜桃| 日韩三级精品| 9999国产精品| 免费成人在线视频观看| 麻豆中文一区二区| 欧美性感美女一区二区| 深夜福利一区| 精品视频国内| 亚洲欧美日韩精品一区二区| 久久久精品国产**网站| 日韩精品看片| 青青草91视频| 不卡在线一区| 久久香蕉精品香蕉| 水蜜桃久久夜色精品一区的特点| 欧美日韩一区二区国产| 欧洲精品一区二区三区| 亚洲综合中文| 精品欧美一区二区三区在线观看| 亚洲精品系列| 久久麻豆精品| 久久精品国产在热久久| 欧美69视频| 老色鬼精品视频在线观看播放| 亚洲在线一区| 99久久婷婷| 精品视频自拍| 国产精品1区| 日韩一区网站| 日韩视频一区| 欧美日韩在线播放视频| 精品中文在线| 国产精品一区二区美女视频免费看| 欧美日韩视频| 久久久9色精品国产一区二区三区| 欧美精品二区| 国产精品一国产精品k频道56| 欧美日韩国产在线观看网站| 天堂√8在线中文| 福利一区和二区| 久久麻豆视频| 欧美91在线| 国产一区三区在线播放| 精品一区二区三区视频在线播放| 日本成人在线一区| 日韩高清不卡一区| 日本成人在线视频网站| 日韩精品a在线观看91| 国产日韩欧美一区二区三区在线观看| 亚洲开心激情| 日韩久久一区| 久久精品国产精品亚洲毛片| 国产剧情在线观看一区| 日韩激情综合| 精品视频黄色| 久久久夜夜夜| 噜噜噜躁狠狠躁狠狠精品视频| 亚洲夜间福利| 天堂av在线一区| 日韩精品乱码av一区二区| 中文字幕一区日韩精品| 亚洲精品精选| 国产福利一区二区三区在线播放| 国产精品欧美日韩一区| 国产一区二区精品久| 99精品视频在线| 亚洲一区二区毛片| 亚洲乱码视频| 九九九精品视频| 亚洲高清久久| 日本在线视频一区二区| 成人高清一区| 欧美综合另类| 国产精品任我爽爆在线播放| 久久一区亚洲| 欧美日韩水蜜桃| 一区二区三区四区在线观看国产日韩| 国产精品一国产精品k频道56| caoporn视频在线| 久久午夜精品| 久久久久久久欧美精品| 欧美精品福利| 色偷偷色偷偷色偷偷在线视频| 亚洲资源av| 日韩1区2区3区| 九色porny丨国产首页在线| 欧美日韩国产高清| 欧美日韩99| 久久精品国产大片免费观看| 国产精品自拍区| 91精品电影| 久久伊人亚洲| 日韩中文字幕av电影| 亚洲性色av| 麻豆视频一区| 亚洲欧洲国产精品一区| 亚洲四虎影院| 精品国产乱码久久久久久樱花| 亚洲资源网站| 日本综合字幕| 国产精品视频3p| 在线视频亚洲欧美中文| 久久国产亚洲| 色婷婷色综合| 精品视频在线你懂得| 日韩精品免费视频一区二区三区 | 久久精品72免费观看| 国产亚洲毛片在线| 久久国产影院| 欧美男人天堂| 人在线成免费视频| 国产精品视频一区二区三区四蜜臂 | 久久精品卡一| 亚洲午夜天堂| 欧美日中文字幕| 久久天堂精品| 天堂网av成人|