Когда я пробую пример из React Hook, у меня возникает проблема с useState
.
В коде ниже, когда я нажимаю кнопку, я добавляю событие для document
и проверяю значение count
.
Я ожидаю получить count
в console.log
и посмотреть как то же самое. Но на самом деле, я получил старое значение (начальное значение) в console
и новое значение в поле зрения. Не могу понять, почему count
в поле зрения изменилось и count
в обратном вызове события не изменилось.
Еще одна вещь, когда я использую setCount(10);
(исправить номер). И нажмите кнопку много раз (> 2), затем нажмите снаружи, я получил только 2 журнала из checkCount
. Это часы React count
не меняются, тогда не addEventListener
в следующий раз.
import React, { useState } from "react";
function Example() {
const [count, setCount] = useState(0);
const add = () => {
setCount(count + 1);
console.log("value set is ", count);
document.addEventListener("click", checkCount);
};
const checkCount = () => {
console.log(count);
};
return (
<div>
<p>You clicked {count} times</p>
<p>Click button first then click outside button and see console</p>
<button onClick={() => add()}>Click me</button>
</div>
);
}
export default Example;