认识
一、认识
**useLatest
**返回当前最新值的 Hook
,可以避免闭包问题。
二、语法
const latestValueRef = useLatest<T>(value: T): MutableRefObject<T>;
三、场景
3.1 在 useEffect 闭包中获取最新状态
import React, { useState, useEffect } from 'react';
import { useLatest } from 'ahooks';
export default () => {
const [count, setCount] = useState(0);
const latestCountRef = useLatest(count);
useEffect(() => {
const interval = setInterval(() => {
setCount(latestCountRef.current + 1);
}, 1000);
return () => clearInterval(interval);
}, []);
return (
<>
<p>count: {count}</p>
</>
);
};