this.setState第二个参数,带有setTimeout

时间:2019-07-25 01:43:10

标签: reactjs asynchronous settimeout

我正在尝试操纵组件的状态。该状态包含一个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。

1 个答案:

答案 0 :(得分:2)

因为第二个要素必须起作用。试试这个

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