【发布时间】:2021-09-29 22:28:23
【问题描述】:
我正在试验 React 'ref' 并且正在使用下面的代码 sn-p。
import { useEffect } from "react";
import { useRef } from "react";
import { useState } from "react";
const Button = () => {
const [counter, setCounter] = useState(0)
const btnRef = useRef();
useEffect(() => {
btnRef.current.addEventListener('click', function () {
console.log('counter ', counter);
setCounter(counter => 1);
})
})
return (
<button ref={btnRef}>Click Me</button>
)
}
export default Button;
我无法理解的是,这段代码 sn-p 每次单击按钮时都会在控制台中两次给我“计数器”值,并且使用不同的值。有人可以帮助我了解这里发生了什么。
当计数器值已经通过 setCounter 函数更改时,为什么计数器值一次又一次地显示“0”?
【问题讨论】:
-
您在
useEffect中缺少空依赖数组 -
感谢您的回答。我已经放置了依赖项[]。但是现在每次单击按钮时状态都不会更新。你能告诉我为什么吗?再次感谢。
-
setCounter(counter => 1);应该做什么?
标签: javascript reactjs react-hooks