单击按钮时,以前的状态不会更新

时间:2020-05-05 22:21:28

标签: reactjs setstate react-class-based-component

我有这个React Class component,在这里我无法获得Button文本从on变为off

import React from 'react';
import ReactDOM from 'react-dom';

class Toggle extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      on: true
    }
  }

  handleClick = () => {
    // todo
    this.setState((prevState) => {
      on: !prevState.on
    })
  }

  render() {
    const {
      on
    } = this.state;
    return ( <
      button onClick = {this.handleClick} >
      {
        on ? "On" : "Off"
      } < /button>
    );
  }
}

ReactDOM.render( <
  Toggle / > ,
  document.getElementById('root')
);

我认为每次单击按钮都会看到以前的状态并会更新。

1 个答案:

答案 0 :(得分:1)

您只是缺少一些括号。如果要隐式返回对象,则必须放置它们。

  handleClick = () => {
    this.setState(prevState => ({
      on: !prevState.on
    }));
  };

检查结果here