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(()=>{
		//后续操作放在这
	})
}
相关推荐
咔咔库奇4 分钟前
前端开源JavaScrip库
前端·开源
_r0bin_36 分钟前
前端面试准备2
前端·html
白皎39 分钟前
立志成为一名优秀测试开发工程师(第九天)——使用fiddler工具、request库进行接口测试
前端·python·fiddler
召田最帅boy40 分钟前
基于URL弹窗的图片链接生成功能技术实现
android·java·javascript
saadiya~1 小时前
Vue3 + Element Plus 实现树形结构的“单选 + 只选叶子节点 + 默认选中第一个子节点”
前端·javascript·vue.js
方圆工作室1 小时前
HTML5 Canvas 星空战机游戏开发全解析
前端·html·html5
正函数1 小时前
HTML5有那些更新
前端·html·html5
zhutoutoutousan1 小时前
基于React和TypeScript的金融市场模拟器开发与模式分析
前端·人工智能·react.js·金融·typescript·机器人·自动化
不会飞的鲨鱼1 小时前
【QQ音乐】sign签名| data参数 | AES-GCM加密 | webpack(上)
开发语言·javascript·webpack
竹鹿众猿2 小时前
ElementUI表单验证指南
前端·vue.js·elementui