【问题标题】:this.setState second argument with a setTimeoutthis.setState 第二个参数带有一个 setTimeout
【发布时间】:2019-07-25 01:43:10
【问题描述】:

我正在尝试操纵组件的状态。该状态包含一个 BOOL isCoping,最初设置为 false,单击后我希望状态 isCoping 更改为 true,然后在 2 秒后我希望它更改回 true。

构造函数是

constructor(props){
        super(props);
        this.state = {
            isCoping : false
        }
    }

和handleClick如下:

handleClick = (e) => {
        this.setState({isCoping : true}
        , setTimeout(()=> {this.setState({isCoping : false})}, 2000)
        )
    }

有人可以告诉我我做错了什么吗?它不工作。最初 isCoping 确实更改为 TRUE,但 2 秒后不会恢复为 FALSE。

【问题讨论】:

    标签: reactjs asynchronous settimeout


    【解决方案1】:

    导致第二个参数必须有一个函数。试试这个

    handleClick = (e) => {
       this.setState(
         {isCoping : true},
         () => setTimeout(()=> {this.setState({isCoping : false})}, 2000)
       )
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-13
      • 1970-01-01
      • 2018-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-20
      • 1970-01-01
      相关资源
      最近更新 更多