使用React.js一段时间后状态改变

State change after a certain amount of time with React.js

本文关键字:状态 改变 一段时间 React js 使用      更新时间:2023-09-26

我有一个在false和true之间切换的变量作为状态(我们可以称之为submitted)。我想做的是让状态在被设置为真之后,在几秒钟后变回假。我该怎么做呢?

我有这样一个函数,当按钮被点击时调用,当状态改变时:

saveAndContinue: function(e) {
    e.preventDefault()
    if(this.state.submitted==false) {
        email = this.refs.email.getDOMNode().value
        this.setState({email: email})
        this.setState({submitted: !this.state.submitted});
    }
  }

我想添加到这一点,我有一个计时器设置变量提交回false。我该怎么做呢?

您可以设置一个超时,以便在给定的时间后重置状态。记住将bind(this)转到超时函数,使this指向正确的this

saveAndContinue: function(e) {
    e.preventDefault()
    if(this.state.submitted==false) {
        email = this.refs.email.getDOMNode().value
        this.setState({email: email})
        this.setState({submitted: !this.state.submitted});
        setTimeout(function(){
             this.setState({submitted:false});
        }.bind(this),5000);  // wait 5 seconds, then reset to false
   }
}