setInterval不更新react native中的计时器变量


var timer = 0; 
const [run, setRun] = useState(false);

useEffect(() => {
if (run) {
Toast.show("Timmer is running"+timer, Toast.LONG);
var interval = setInterval(() => { timer++; }, 1000);
} else {
Toast.show("Timmer is stopped"+timer, Toast.LONG);
clearInterval(interval);
}
}, [run]);
const runTimer = () => {
setRun(!run);
} 

//JSX 
<Text onPress={runTimer} 
style={{fontSize: 18, color: 'black', zIndex: 11, fontFamily: 'Roboto-Bold',}}>
{timer}
</Text>

在这里,当我点击文本时,我需要计时器在我点击回来时启动和暂停,但它根本不更新计时器。

有人能帮我吗,谢谢。

计时器无法接收当前计时器值,我认为您可以将timer声明为状态变量,然后将setInterval(() => { setTimer(prev=>prev+1 }, 1000);声明为

相关内容

  • 没有找到相关文章

最新更新