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(()=>{
		//后续操作放在这
	})
}
相关推荐
m0_471199632 分钟前
【JavaScript】前端如何处理服务端部分接口加解密
开发语言·前端·javascript
盐焗西兰花9 分钟前
鸿蒙学习实战之路-Web 页面适配最佳实践
前端·学习·harmonyos
离别又见离别20 分钟前
vue使用js渲染组件案例(公用打印组件动态渲染)及静默打印实现
前端·javascript·vue
wyhwust21 分钟前
学技术找工作经验分享--前端
前端
BD_Marathon24 分钟前
【JavaWeb】JS_BOM编程_window对象的常见属性
前端
IT_陈寒26 分钟前
Redis性能提升50%的7个关键配置:从慢查询优化到内存碎片整理实战指南
前端·人工智能·后端
还不秃顶的计科生30 分钟前
wps“文件路径与可点击的超链接“之间的相互转换
前端
黛色正浓39 分钟前
【React】极客园案例实践-编辑文章模块和项目打包
前端·react.js·前端框架
徐同保40 分钟前
n8n项目编译时取消类型检测,提交代码时取消校验
开发语言·前端·javascript
不会kao代码的小王1 小时前
openEuler上Docker部署Kafka消息队列实战
前端·云原生·stable diffusion·eureka