首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >React 中 useEffect 依赖数组的闭包陷阱:为什么你的定时器总在读取旧值?

React 中 useEffect 依赖数组的闭包陷阱:为什么你的定时器总在读取旧值?

作者头像
超哥前端记录
发布于 2026-10-09 09:40:25
发布于 2026-10-09 09:40:25
80
举报
概述
在 React 函数组件里用 useEffect 处理定时器、事件订阅或者异步请求时,经常会遇到一个隐蔽的问题:回调函数里拿到的 state 或 props 永远是初始值,而不是最新的值。比如一个计数器每秒加一,但定时器里 count 始终是 0;或者一个搜索框,输入变化后发请求,但拿到的一直是第一次的输入。这类问题通常被叫做“闭包陷阱”或“陈旧闭包”,根源在于每次渲染都有独立的函数作用域和 st

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档