想问下我的代码哪里写的有问题,为什么num增加到10之后会出现抖动现象?
相关代码
import React, {useState} from 'react';
export default function Example() {
const [num, setNum] = useState(0);
setInterval(() => {
setNum(num + 1)
}, 1000);
return (
<div>
<button>
Click me{num}
</button>
</div>
);
}
简单说就是每次
setNum
都会创建一个新的timer
,所以就抖动了,这里应该使用React.useEffect
包装setInterval
。这个文章看完应该会完美解决你的问题, making-setinterval-declarative-with-react-hooks,如果英语不好,里面有中文的链接。