Javascript 当我';我正在运行我的程序I';我的内存不足错误

Javascript 当我';我正在运行我的程序I';我的内存不足错误,javascript,html,reactjs,while-loop,Javascript,Html,Reactjs,While Loop,所以,我实际上想创建一个计时器,它会倒计时,但是当我运行这个脚本时,我总是会出现“内存不足”错误。这是我的onClick脚本: handleClickStart = () => { while (this.state.hours > 0) { this.setState({ hours: this.state.hours - 1 }) } }

所以,我实际上想创建一个计时器,它会倒计时,但是当我运行这个脚本时,我总是会出现“内存不足”错误。这是我的onClick脚本:

handleClickStart = () => {
          while (this.state.hours > 0) {
              this.setState({
                  hours: this.state.hours - 1
              })
          } 
    }

另外,如果需要,我可以向您展示整个代码

setState
是异步的,它是成批运行的,不要在循环中使用
setState
,而是在循环结束时创建一个新变量并设置状态,如下所示

handleClickStart = () => {
    let hours = this.state.hours;
    while (hours > 0) {
        hours --;
    } 

    this.setState({hours});
}

setState
是异步的,它成批运行,不要在循环中使用
setState
,而是创建一个新变量并在循环结束时设置状态,如下所示

handleClickStart = () => {
    let hours = this.state.hours;
    while (hours > 0) {
        hours --;
    } 

    this.setState({hours});
}

非常感谢你!非常感谢你!