react经验12:等待状态更新

应用场景:

等待react组件内的state发生变更后进行后续操作。

已知问题

通常state的变化会引起dom的刷新,更新state一般使用setState,但这是个异步操作。

如果此时需要立即操作dom,得到的目标dom是刷新之前的样子。

应对方法

方法1 :使用useEffect监听state,当监听的state发生变化时会触发回调,此时的dom也刷新完毕。

举例:

js 复制代码
const [count,setCount]=useState(0)
useEffect(()=>{
//这里是state的监听回调
},[count])

方法2 :

使用timeout,调用setState后,后续操作放在timeout中处理。

举例:

js 复制代码
const [count,setCount]=useState(0)
function handleChange(val:number){
	setCount(val)
	setTimeout(()=>{
		//后续操作放在这
	})
}
相关推荐
AY呀10 分钟前
# 🌟 JavaScript原型与原型链终极指南:从Function到Object的完整闭环解析 ,深入理解JavaScript原型系统核心
前端·javascript·面试
用户4346621531311 分钟前
无废话之 useState、useRef、useReducer 的使用场景与选择指南
前端
GinoWi11 分钟前
HTML标签 - 表格标签
前端
氤氲息12 分钟前
鸿蒙 ArkTs 的WebView如何与JS交互
javascript·交互·harmonyos
码是生活13 分钟前
老板:能不能别手动复制路由了?我:写个脚本自动扫描
前端·node.js
小皮虾14 分钟前
护航隐私!小程序纯前端“证件加水印”:OffscreenCanvas 全屏平铺实战
前端·javascript·微信小程序
chushiyunen15 分钟前
未设置X-XSS-Protection响应头安全漏洞
前端·xss
叫我詹躲躲18 分钟前
别再用mixin了!Vue3自定义Hooks让逻辑复用爽到飞起
javascript·vue.js
文心快码BaiduComate18 分钟前
Comate Spec模式实测:让AI编程更精准可靠
前端·后端·前端框架
菥菥爱嘻嘻23 分钟前
组件测试--React Testing Library的学习
前端·学习·react.js