【发布时间】:2021-08-20 12:58:03
【问题描述】:
我正在创建间隔计数器,下面的代码工作正常。但是我对这段代码有几个我不明白的问题。
import React, { useState, useEffect } from 'react';
import {View, Text} from 'react-native'
const Interval = () => {
const [seconds, setSeconds] = useState(0);
useEffect(() => {
const interval = setInterval(() => {
console.log(`seconds: ${seconds}`)
setSeconds(seconds => seconds + 1);
}, 1000);
return () => clearInterval(interval);
}, []);
return (
<View>
<Text>
{seconds} seconds have elapsed since mounting.
</Text>
</View>
);
};
export default IntervalExample;
- 如果我更简单地使用
setSeconds(seconds => seconds + 1);而不是setSeconds(seconds + 1);,为什么这不起作用? - 为什么
console.log(`seconds: ${seconds}`)总是以0登录?
【问题讨论】:
-
我检查了一下,你的代码有效。您的代码中唯一的问题是您没有正确关闭 Text 标签。
-
@TayyabMazhar 抱歉,感谢提及,我编辑了我的帖子。是的,它工作正常。但是我想知道关于我在帖子中提到的代码的两件事。
标签: reactjs react-native react-hooks setinterval use-state