0
ここで、我々はグローバルスコープにhandleClickの「この」オブジェクトを()バインドする必要があります。なぜ我々はJSXコールバックは「この」にバインドする必要があります
class Toggle extends React.Component {
constructor(props) {
super(props);
this.state = {isToggleOn: true};
// This binding is necessary to make `this` work in the callback
this.handleClick = this.handleClick.bind(this);
}
handleClick() {
this.setState(prevState => ({
isToggleOn: !prevState.isToggleOn
}));
}
render() {
return (
<button onClick={this.handleClick}>
{this.state.isToggleOn ? 'ON' : 'OFF'}
</button>
);
}
}
しかし、handleClick()コンポーネントのスコープ内で定義されているので、すでにコンポーネント自体を参照しているので、この関数に 'this'オブジェクトを指定する必要はありませんか?
なり - –
(イベントを送出し、多くの場合、オブジェクトを、あなたのコードでは、' button'要素になるだろう)また、あなたのコードは 'isToggleOn'が最初に' true'になってから '' ON''または '' OFF''になります - そう、常に "truthy" - 奇妙に見えます –