hina2go

主に技術系のこことか。最近React始めました。

ReactでGithubのリポジトリブラウザを作ってみる (2)

前回の続き。

hinathy.hatenablog.com

お題

今回はちょっとしたお題。 ユーザー名が未入力でもボタンが押せちゃうのは、ユーザービリティが良くないので改善します。 具体的には、ユーザー名未入力の場合は、Updateボタンをdisableします。

以下のように、disable={!this.state.username}してあげるだけで実現できます。

class SearchBox extends React.Component {
  ... (snip) ...

  render() {
    return (
      <div>
        <form onSubmit={this.handleSubmit}>
          <input type="text" onChange={this.handleChange} placeholder="Enter username" />
          <input type="submit" value="Update" disabled={!this.state.username} /> // <= (*) ここ
        </form>
      </div>
    );
  }

  ... (snip) ...
}

ポイントは以下でしょうか。

  • usernameを、ステートで保持する。
  • ユーザー名のテキストボックスの入力内容の変化をonChange()でハンドリングする。
  • onChange()が呼び出されたら、ステートに保持しているusenamesetState()で更新する。

ソースコード

github.com