【发布时间】:2021-06-25 16:37:15
【问题描述】:
import React , {useState, useEffect} from 'react';
const Timer = () =>{
const [timer, setTimer] = useState(120);
const countTimer = () =>{
if(timer <= 0){
localStorage.clear("timer");
console.log("timer less then 0")
return;
} else {
console.log("greater then 0")
setTimer(timer -1) ;
localStorage.setItem("timer",timer);
setTimeout(countTimer(),1000);
}
}
useEffect(()=>{
if(localStorage.getItem("timer")){
setTimer(localStorage.getItem("timer"));
} else {
setTimer(120);
}
if(timer){
setTimeout(countTimer(),1000);
}
},[timer])
return (
<div align="center">
Timer :{timer}
</div>
)
}
export default Timer
我的目标是在 react 中实现倒计时计时器,该计时器将与本地存储和跨浏览器选项卡同步,页面显示计数器, 想要同步 state 的 timer 和 local storage 的 timer,把它们放在 useEffect 的 timer change 更新 state 的 timer 和更新 setTimeout 里面的 local storage,拜托了!帮帮我,谢谢
【问题讨论】:
-
请为您所面临的问题提供更多背景信息,并正确格式化代码,以便其他人以更好的方式回答问题!
-
在 react 中实现倒数计时器,它将与 localstorage 和跨浏览器选项卡同步,页面显示计数器请帮助
标签: javascript react-hooks local-storage event-listener