美文网首页
React setState异步变同步

React setState异步变同步

作者: pumpkin1024 | 来源:发表于2021-02-25 16:41 被阅读0次
import React from "react";

class Counter extends React.Component {
  state = {
    count: 0,
  };

  handleAdd = () => {
    const { count } = this.state;
    this.setState({
      count: count + 1,
    });
    console.log(count); // 由于是异步的,这里输出0
  };

  render() {
    const { count } = this.state;
    return <button onClick={this.handleAdd}>{count}</button>;
  }
}

如何获取改变后的值

  1. 方法一,通过setState的回调函数
  handleAdd = () => {
      // 方法一
      this.setState(
      {
        count: count + 1,
      },
      () => {
        console.log(count);// 1
      },
    );
  }
  1. 方法二,通过setTimeout
  handleAdd = () => {
      // 方法二
      setTimeout(() => {
        this.setState({
          count: count + 1,
        });
        console.log(count);// 1
      }, 0);
  }

相关文章

网友评论

      本文标题:React setState异步变同步

      本文链接:https://www.haomeiwen.com/subject/xtsufltx.html