首页 > 其他 > 详细

react setState是同步还是异步

时间:2020-06-03 09:11:09      阅读:44      评论:0      收藏:0      [点我收藏+]

 

changeDate = () => {
    const { count } = this.state
    this.setState({
      count: count+1
    })
    console.log(this.state.count)
  }
  render () {
    const { count } = this.state
    return (
      <>
        setState是同步还是异步
        <button onClick={this.changeDate}>更新count: {count}</button>
      </>
    )
  }

解决办法1:

changeDate = () => {
    const { count } = this.state
    this.setState({
      count: count+1
    }, () => {
      console.log(this.state.count)
    })
  }
  render () {
    const { count } = this.state
    return (
      <>
        setState是同步还是异步
        <button onClick={this.changeDate}>更新count: {count}</button>
      </>
    )
  }

解决办法2:

async changeDate(){
    await this.setStateAsync ({count: this.state.count+1})
    console.log(this.state.count)
  }
  setStateAsync (state) {
    return new Promise((resolve) => {
      this.setState(state,resolve)
    })
  }
  render () {
    const { count } = this.state
    return (
      <>
        setState是同步还是异步
        <button onClick={this.changeDate.bind(this)}>更新count: {count}</button>
      </>
    )
  }

 

react setState是同步还是异步

原文:https://www.cnblogs.com/pcxhahaha/p/13034843.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!