2 回答

TA貢獻1847條經驗 獲得超7個贊
我假設是useState Hook,它的價值是registSleepsetNewRegist
const [registSleep, setNewRegist] = useState([ ... ])
它不起作用的兩個原因。useState Hook 是異步的,對于 setState 內部的邏輯,邏輯不會停止。
setNewRegist( ... update registSleep)
console.log(registSleep) // will run before setState finishes
然而,即使它及時完成,registSleep已經設置為固定值,因此它不會更改,除非重新呈現(xiàn)組件(這是setState所做的),以觸發(fā)組件重新呈現(xiàn)。

TA貢獻1815條經驗 獲得超6個贊
//I am considering this
const [ registSleep , setNewRegist ] = useState([])
setNewRegist是異步函數(shù),因此在下一個語句將首先執(zhí)行,因此它不會更新。console.logregistSleep
那么如何檢查正確呢?
Tada.... !!!您可以通過以下方式檢查其每次更新:registSleepuseEffect
useEffect(() => {
// Here you can get updated length
// as soon as registSleep updates
console.log(registSleep.length);
},[registSleep]) // <-- watch for any update on `registSleep`
添加回答
舉報