При нажатии кнопки предыдущее состояние не обновляется
У меня есть это 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 ответ
Решение
Вам просто не хватает скобок. Если вы хотите неявно вернуть объект, вы должны их поместить.
handleClick = () => {
this.setState(prevState => ({
on: !prevState.on
}));
};
Проверить результат здесь