主页 > 其他  > 

React:实现一个定时器计数器,每秒自动+1

React:实现一个定时器计数器,每秒自动+1

需求:实现一个定时器计数器,每秒自动+1

import React, { useState, useEffect } from "react"; export default function App() { let [count, setCount] = useState(0); useEffect(() => { let timer = setInterval(() => { setCount(count + 1); }, 1000); return () => { clearInterval(timer); }; }, []); return <div>{count}</div>; }

以上写法有一个问题,页面会永远停留在数字1,并不会发生变化

正确的写法如下

import React, { useState, useEffect } from "react"; export default function App() { let [count, setCount] = useState(0); useEffect(() => { let timer = setInterval(() => { setCount((preValue) => { return preValue + 1; }); }, 1000); return () => { clearInterval(timer); }; }, []); return <div>{count}</div>; }

方法签名

setCount(value) setCount(preValue=>newValue)

参考文章

「React」React Hooks与setInterval的踩坑问题总结 react.docschina.org/reference/react/useState
标签:

React:实现一个定时器计数器,每秒自动+1由讯客互联其他栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“React:实现一个定时器计数器,每秒自动+1