【发布时间】:2021-07-02 15:07:54
【问题描述】:
我正在尝试为一个项目制作一个倒计时网站。我希望倒计时由按钮触发。我正在使用 React,但我不断收到此错误
React Hook "useEffect" 在函数 "countdown" 中被调用,该函数既不是 React 函数组件也不是自定义 React Hook 函数。 React 组件名称必须以大写字母开头
我对反应很陌生,有人可以给我一些建议来解决这个问题吗?
代码:
import './App.css';
import React, { useEffect, useState } from 'react';
function App() {
const time = 20;
const [count, setCount] = useState(time);
const startCount = () => {
useEffect(() => {
if (count > 0) {
setTimeout(() => setCount(count - 1), 1000);
} else {
setCount('Times up');
}
});
};
return (
<div className="App">
<div>{count}</div>
<button onClick={startCount}> start </button>
<button> pauze </button>
</div>
);
}
export default App;
【问题讨论】:
-
useEffect使您能够在组件被渲染或状态改变时运行某些东西。将其包含在单击时调用的函数中使其无用。useEffect应该调用其他函数,但绝不应该从函数内部调用。
标签: javascript reactjs