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])
添加回答
举报