Как получить обновленное значение useState () внутри функции тайм-аута? - PullRequest
0 голосов
/ 26 мая 2020

Я сейчас пытаюсь получить последние обновления функции тайм-аута. Это означает, что я хочу обновить c до 1 без использования чего-то вроде хука useRef.

const [c, s] = useState<number>(0)

    const f = () => {
        s(1)
        setTimeout(() => console.log(c), 600)
    }

    return (
        <div
            style={{ width: '100%', height: '100%', backgroundColor: 'black' }}
            onMouseEnter={f}
        >
            test
        </div>
    )

1 Ответ

2 голосов
/ 26 мая 2020

Без ссылки можно попробовать useEffect хук:

const [c, setC] = useState<number>(0);

useEffect(() => {
  setTimeout(() => {
    console.log(c);
  }, 600);
}, [c]);

const f = () => {
  setC(1);
};

return <div onMouseEnter={f}>test</div>;
...