首页 > 解决方案 > setinterval 中预期的 Reactjs 参数表达式

问题描述

我在 reactjs 中使用 setInterval 但只要我在其中使用 if 表达式。我有一个错误。我的代码是

    setInterval (
        if(this.state.count >4){
            this.setState({
                classcolor: colors[Math.floor((Math.random() * 2) + 0)]
            })
        }
        this.setState(prevState => ({
            count: prevState.count + 1
        }), () => {this.setState({
            classcolor: colors[Math.floor((Math.random() * 2) + 0)]
        })})
        , 2000)

我怎么解决这个问题?有人可以帮助我吗?

标签: javascriptreactjs

解决方案


的第一个参数setInterval应该是一个函数。您刚刚直接启动了函数体代码。该代码需要在函数内部,如下所示:

setInterval (() => {
  if(this.state.count >4){
      this.setState({
          classcolor: colors[Math.floor((Math.random() * 2) + 0)]
      })
  }
  this.setState(prevState => ({
      count: prevState.count + 1
  }), () => {this.setState({
      classcolor: colors[Math.floor((Math.random() * 2) + 0)]
  })})
}, 2000);

推荐阅读