При нажатии кнопки предыдущее состояние не обновляется - PullRequest
0 голосов
/ 06 мая 2020

У меня есть это React Class component, где я не могу изменить текст кнопки с 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 Ответ

1 голос
/ 06 мая 2020

Вам просто не хватает скобок. Если вы хотите неявно вернуть объект, вы должны поместить их.

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

Проверить результат здесь

...