跳到主要内容

认识

一、认识


**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>
</>
);
};