react useRef解决异步闭包问题,因为ref对象在组件的整个生命周期内保持不变

export const MyComponent = props=>{
 const [message,setMessage] = useState('inittial message')
 const [seconds,setSeconds] = useState(0)
const secondsRef = useRef(seconds)

useEffect(()=>{
 setTimeout(()=>{
  setSeconds(1)
  secondsRef.current = 1;
 },1000);
 setTimeout(()=>{
 setMessage(`Total Seconds  ${secondsRef.current}`)
 },2000);
},[])
//这里不需要传依赖就能2秒后再次改变值
return (
 <>
   <h3>{message}</h3>
   <h4>{seconds}</h4>
 </>
)
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值