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

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

SetInterval 未獲取最新的道具值

SetInterval 未獲取最新的道具值

嗶嗶one 2022-10-08 18:05:52
我有一個反應(yīng)組件,我們 isAlive作為一個道具傳遞給它,它具有false來自父組件的初始值,我不確定setInterval這個console.log人是否還活著。當(dāng)?shù)谰吒聲r,最新值不會反映在運行時設(shè)置的間隔中,它始終保留原始值,即false.const printUserStatus = ({isAlive}) =>{    setInterval(() => {        if(isAlive === false){             console.log("the user is Dead");        }        else if(isAlive === true){             console.log("the user is Alive");        }     },1000);}更新:感謝mahdi方法,通過以下方式解決了它 -const printUserStatus = ({isAlive}) =>{    const isAliveRef = useRef(isAlive);    isAliveRef.current = isAlive;    setInterval(() => {        if(isAliveRef.current === false){             console.log("the user is Dead");        }        else if(isAliveRef.current === true){             console.log("the user is Alive");        }     },1000);}
查看完整描述

2 回答

?
慕桂英3389331

TA貢獻2036條經(jīng)驗 獲得超8個贊

如果您有意從某個異步回調(diào)中讀取最新狀態(tài),則可以將其保存在 ref 中,對其進行變異并從中讀取。

查看React 文檔。

基本上你看到的值是isAlive函數(shù)第一次被調(diào)用時的值。


查看完整回答
反對 回復(fù) 2022-10-08
?
侃侃無極

TA貢獻2051條經(jīng)驗 獲得超10個贊

檢查這個 6 歲的答案關(guān)于如何 setInterval工作

https://stackoverflow.com/a/19123476/13647574

使用類似的東西useRef()來避免這種情況


查看完整回答
反對 回復(fù) 2022-10-08
  • 2 回答
  • 0 關(guān)注
  • 195 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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