React JS:使用 setInterval() 触发函数每秒执行一次
React JS: Trigger a function with setInterval() to execute every second
我想了解这个 setInterval() 是如何工作的,以及如何使用它来触发一个函数每秒执行一次。例如,我尝试每秒生成一个新的随机数。即:函数 getNewNr 应该每秒执行一次。 (稍后,这可能是一个更复杂的功能......)
这是我得到的:
import React, { useState, useEffect } from 'react'
function Random() {
const [number, setNumber] = useState(0)
const getNewNr = () => {
setNumber(Math.floor(Math.random() * 100))
}
useEffect(() => {
const interval = setInterval(() => getNewNr, 1000)
return () => clearInterval(interval)
}, [])
return (
<div>
{number}
</div>
)
}
export default Random
但数字保持为 0,没有变化。谁能找出错误?
import React, { useState, useEffect } from "react";
function Random() {
const [number, setNumber] = useState(0);
const getNewNr = () => {
setNumber(Math.floor(Math.random() * 100));
};
useEffect(() => {
const interval = setInterval(() => getNewNr(), 1000);
return () => clearInterval(interval);
}, []);
return <div>{number}</div>;
}
export default Random;
我想了解这个 setInterval() 是如何工作的,以及如何使用它来触发一个函数每秒执行一次。例如,我尝试每秒生成一个新的随机数。即:函数 getNewNr 应该每秒执行一次。 (稍后,这可能是一个更复杂的功能......)
这是我得到的:
import React, { useState, useEffect } from 'react'
function Random() {
const [number, setNumber] = useState(0)
const getNewNr = () => {
setNumber(Math.floor(Math.random() * 100))
}
useEffect(() => {
const interval = setInterval(() => getNewNr, 1000)
return () => clearInterval(interval)
}, [])
return (
<div>
{number}
</div>
)
}
export default Random
但数字保持为 0,没有变化。谁能找出错误?
import React, { useState, useEffect } from "react";
function Random() {
const [number, setNumber] = useState(0);
const getNewNr = () => {
setNumber(Math.floor(Math.random() * 100));
};
useEffect(() => {
const interval = setInterval(() => getNewNr(), 1000);
return () => clearInterval(interval);
}, []);
return <div>{number}</div>;
}
export default Random;