【问题标题】:State change after a certain amount of time with React.js使用 React.js 一段时间后的状态变化
【发布时间】:2015-07-09 04:45:34
【问题描述】:

我有一个在 false 和 true 之间切换的变量作为状态(我们可以称之为已提交)。我想做的是在几秒钟后将状态设置为true后将状态更改回false。我该怎么做?

我有一个在单击按钮时调用的函数,并且状态发生变化:

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。我该怎么做呢?

【问题讨论】:

    标签: javascript reactjs


    【解决方案1】:

    您可以设置超时以在给定时间后重置状态。记得要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
       }
    }
    

    【讨论】:

    • 在撰写本文时,箭头函数更为流行并保留了this 绑定。
    猜你喜欢
    • 2011-11-09
    • 2014-12-11
    • 2015-06-13
    • 2015-12-18
    • 1970-01-01
    • 1970-01-01
    • 2020-11-07
    • 2017-04-23
    相关资源
    最近更新 更多