index.jsx 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. import React, { Component } from "react";
  2. export default class Test01SetState extends Component {
  3. state = { count: 0 };
  4. add = async () => {
  5. const { count } = this.state;
  6. this.setState({ count: count + 1 });
  7. this.setState({ count: count + 1 }, () => {
  8. console.log("异步setState回调输出count:", this.state.count);
  9. });
  10. console.log(
  11. "更新后的state.count(总是输出更新前的数值?):",
  12. this.state.count
  13. );
  14. };
  15. addFunc = () => {
  16. /*this.setState((state, props) => {
  17. console.log("old count:", state.count);
  18. return { count: state.count + 1 };
  19. }); */
  20. this.setState((state) => ({
  21. count: state.count + 1,
  22. }));
  23. };
  24. render() {
  25. return (
  26. <div>
  27. <h1>当前求和为:{this.state.count}</h1>
  28. <button type="button" onClick={this.add}>
  29. 点我加一
  30. </button>
  31. <button type="button" onClick={this.addFunc}>
  32. 点我加一 函数式setState
  33. </button>
  34. </div>
  35. );
  36. }
  37. }