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(()=>{
		//后续操作放在这
	})
}
相关推荐
xxy-mm10 小时前
Javascript 中的继承
开发语言·javascript·ecmascript
锋行天下11 小时前
公司内网部署大模型的探索之路
前端·人工智能·后端
1024肥宅12 小时前
手写 EventEmitter:深入理解发布订阅模式
前端·javascript·eventbus
海市公约14 小时前
HTML网页开发从入门到精通:从标签到表单的完整指南
前端·ide·vscode·程序人生·架构·前端框架·html
3秒一个大14 小时前
HTML5 与 JavaScript 中的二进制数据处理:ArrayBuffer 与 TextEncoder/Decoder 实践
javascript
purpleseashell_Lili14 小时前
如何学习 AG-UI 和 CopilotKit
javascript·typescript·react
行云流水62614 小时前
前端树形结构实现勾选,半勾选,取消勾选。
前端·算法
diudiu_3314 小时前
web漏洞--认证缺陷
java·前端·网络
阿珊和她的猫15 小时前
<video>` 和 `<audio>` 标签的常用属性解析
前端
LSL666_15 小时前
4 jQuery、JavaScript 作用域、闭包与 DOM 事件绑定
前端·javascript·html