2 回答

TA貢獻1804條經驗 獲得超3個贊
使用 useState 掛鉤提供的更新程序的狀態更新是異步的,不會立即反映。
嘗試使用鉤子讀取值:useEffect()
useEffect(() => {
console.log(radioValue)
}, [radioValue])

TA貢獻1829條經驗 獲得超7個贊
您需要知道:
setState操作是異步的,并且為提高性能而進行批處理。這在設置狀態的文檔中有解釋。
但是為什么? 改變狀態并導致重新呈現。這可能是一項代價高昂的操作,使其同步可能會使瀏覽器無響應setState
因此,setState 調用是異步的,并且是批處理的,以獲得更好的 UI 體驗和性能。
如果我需要在之后做些什么怎么辦?setState
如果你有一個,你可以做你需要的里面,像這樣:React Class ComponentsetState callback
this.setState(newState, function(){
// Do what it needs to be done after updating newState here
});
如果你有一個你需要用鉤子聽,并做你需要的事情,像這樣:React Functional Componentstate changeuseEffectuseEffect
useEffect(() => {
// Do what it needs to be done after updating state here
}, [radioValue])
添加回答
舉報