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

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

組件切換時狀態(tài)不會重置

組件切換時狀態(tài)不會重置

慕慕森 2023-09-07 16:17:59
我一直在嘗試有條件地顯示組件。外部處理:{show && <MyComponent />}內(nèi)部處理:const MyComponent = () => {    const [externalState] = useContext();    const [state, setState] = useState("")         // Don't render base on some state value     if(externalState === false) return null;     return <input value={state} onChange={e=>setState(e.currentTarget.value)} type="text"/>}我注意到在第二種方法中,當(dāng)我打開和關(guān)閉組件時,狀態(tài)不會重置。有沒有辦法解決這個問題,或者不推薦第二種方法。
查看完整描述

1 回答

?
慕少森

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

您會看到狀態(tài)保留的不同行為的原因是,MyComponent只要條件發(fā)生變化,第一個方法就會掛載或卸載。

如果show為 false,MyComponent則不僅是隱藏,而且實(shí)際上是從 DOM 中刪除。

在第二種方法中,僅從DOM 中刪除返回的 JSX,組件的其余部分保持安裝狀態(tài),這意味著狀態(tài)得到維護(hù)MyComponent

至于“修復(fù)”問題(大多數(shù)人實(shí)際上會看到狀態(tài)丟失是一個錯誤,所以這是一個不同的視角),最簡單的方法是繼續(xù)使用選項(xiàng) 1。你當(dāng)然可以使用選項(xiàng) 2,但你必須每次show更新內(nèi)部管理時添加一些額外的邏輯/函數(shù)調(diào)用來重置狀態(tài)。


查看完整回答
反對 回復(fù) 2023-09-07
  • 1 回答
  • 0 關(guān)注
  • 100 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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