Javascript 创建倒计时计时器
我想在React Js中创建一个倒计时计时器,其中我将使用户启动(开始倒计时)、停止(停止倒计时)和重置(重置计时器),如图示例所示 作为React JS和javascript的初学者,我从测试按钮开始。之后,我创建了一个函数“secondPass”来计算剩余时间,然后显示剩余时间。“countDown”变量用于在“clearInterval(countDown)”之后停止“setinterval” 问题是,我在“codesandbox”平台中得到了一条错误消息,如图所示。如果有人能解释我的错误,如果没有,请帮助我编写一个非常简单的代码来实现我的项目 : 下面是React代码:Javascript 创建倒计时计时器,javascript,reactjs,Javascript,Reactjs,我想在React Js中创建一个倒计时计时器,其中我将使用户启动(开始倒计时)、停止(停止倒计时)和重置(重置计时器),如图示例所示 作为React JS和javascript的初学者,我从测试按钮开始。之后,我创建了一个函数“secondPass”来计算剩余时间,然后显示剩余时间。“countDown”变量用于在“clearInterval(countDown)”之后停止“setinterval” 问题是,我在“codesandbox”平台中得到了一条错误消息,如图所示。如果有人能解释我的错误
import React from "react";
export default class Timer extends React.Component {
constructor(props) {
super(props);
this.state = {
timer: 90
};
}
var seconds = 1200, // Number Of Seconds
countDown = setInterval(function() {
secondPass();
}, 1000);
function secondPass() {
var minutes = Math.floor(seconds / 60), // To Determine The Minutes
var remSeconds = seconds % 60; // To Determine The Seconds
}
resetTime() {
this.setState({ timer: 0 });
}
render() {
const { timer } = this.state;
return (
<div className="App">
<h2>{timer}</h2>
<button onClick={() => this.resetTime()}>Reset</button>
</div>
);
}
}
从“React”导入React;
导出默认类计时器扩展React.Component{
建造师(道具){
超级(道具);
此.state={
计时器:90
};
}
var seconds=1200,//秒数
倒计时=设置间隔(函数(){
第二遍();
}, 1000);
函数secondPass(){
var minutes=Math.floor(秒/60),//确定分钟数
var remSeconds=seconds%60;//确定秒数
}
重置时间(){
this.setState({timer:0});
}
render(){
const{timer}=this.state;
返回(
{计时器}
此参数为.resetTime()}>Reset
);
}
}
删除第二次传递
函数的关键字。如果要在类中声明函数,则不需要函数关键字
让它像
export default class Timer extends React.Component {
constructor(props) {
super(props);
this.state = {
timer: 90
};
}
var seconds = 1200, // Number Of Seconds
countDown = setInterval(function() {
secondPass();
}, 1000);
secondPass() {
var minutes = Math.floor(seconds / 60), // To Determine The Minutes
var remSeconds = seconds % 60; // To Determine The Seconds
}
resetTime() {
this.setState({ timer: 0 });
}
render() {
const { timer } = this.state;
return (
<div className="App">
<h2>{timer}</h2>
<button onClick={() => this.resetTime()}>Reset</button>
</div>
);
}
}
导出默认类计时器扩展React.Component{
建造师(道具){
超级(道具);
此.state={
计时器:90
};
}
var seconds=1200,//秒数
倒计时=设置间隔(函数(){
第二遍();
}, 1000);
第二关(){
var minutes=Math.floor(秒/60),//确定分钟数
var remSeconds=seconds%60;//确定秒数
}
重置时间(){
this.setState({timer:0});
}
render(){
const{timer}=this.state;
返回(
{计时器}
此参数为.resetTime()}>Reset
);
}
}
这是因为secondPass
是Timer
类主体中定义的成员函数。在JS中,您不需要在其前面使用函数
,只需像render一样声明它:将函数secondPass
更改为secondPass
在类中为secondPass函数声明函数时,不需要使用function关键字。这是新的ES6语法。什么是倒计时?你需要用关键字初始化它。尝试将let置于倒计时之前=…您有一些语法错误。基本上,您不能像这样定义变量(seconds
)和方法,这是错误的语法。在定义secondPass()
方法时,如果不使用函数
关键字,您可能会发现此链接非常有用。