0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ON/OFFスイッチ~React HPより~

Posted at

ReactのHPでは,チュートリアルなど様様な情報を提供しています.
その中で,メインコンセプトとして,「イベント処理」というページでON/OFFスイッチを作っているのですが,僕の頭では見ても書いてもよくわからなかったので,登場するコードについてまとめてみます.

#最初に
このページのわからないことを,どうやって調べたらいいかわからないので助けてください.

完成形

HPに書いてある以下のコードを書くと,クリックするONとOFFの文字で行き来するボタンが表示される時計が作れます
image.png

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

  handleClick() {
    this.setState(state => ({
      isToggleOn: !state.isToggleOn
    }));
  }

  render() {
    return (
      <button onClick={this.handleClick}>
        {this.state.isToggleOn ? 'ON' : 'OFF'}
      </button>
    );
  }
}

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

わからないこと

とりあえずわからないコードは,is ToggleOn: truebind!state.isToggleOn{this.state.isToggleOn ? 'ON' : 'OFF'}
調べ方が悪いのかbind以外,解説が全然出てこない(笑)

なので,以下に書いてあることは根拠がなく,すべて私の今の理解ですので,何かヒントや参考になるページ,修正があればコメントを頂きたいです.
よろしくお願いいたします.

私の理解

  constructor(props) {
    super(props);
    this.state = {isToggleOn: true};
    this.handleClick = this.handleClick.bind(this);
  }

ここでは初期値を設定してますね.
最初はisToggleOnはtrueです

render() {
    return (
      <button onClick={this.handleClick}>
        {this.state.isToggleOn ? 'ON' : 'OFF'}
      </button>
    );
  }

ここでは,ボタンを設定していますね.
trueだと「ON」,falseだと「OFF」ってことですかね.

 handleClick() {
    this.setState(state => ({
      isToggleOn: !state.isToggleOn
    }));
  }

handleClickメソッドを定義していますね.
stateの内容を変更しています.
このメソッドにおけるisToggleOnは,その前の時点におけるstateのisToggleOnの真偽値を!で変更しているのかな??
#参考
React HP

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?