この課題は、Web白熱教室のReact課題その4「【エクササイズ】API経由のデータ取得前後で表示を切り替える」の課題レポジトリになります。
- 以下の完成形の画像と同じ見た目になるように実装する
- 具体的な実装の流れは、以下の「課題をクリアするためのステップ」の内容を参考にすること
-
App.js
をクラスコンポーネントとして作り、次の機能を実装する-
constructor
- stateの初期値を定義する。stateは次のプロパティを持つ
- loading: API実行中は
true
, それ以外ではfalse
をセットする - data:
requestData
メソッドを実行した際に取得するクイズデータの1件目のデータをセットする
- loading: API実行中は
- stateの初期値を定義する。stateは次のプロパティを持つ
-
componentDidMount
メソッドrequestData
メソッドを実行する
-
requestData
メソッド- 「【エクササイズ】fetchで取得したクイズデータを一覧表示する」でも利用したクイズデータを取得するAPIを使ってクイズデータを取得する
- APIで取得したクイズデータの内、最初の1件のクイズデータを
state.data
にセットする - APIの実行をする前に
state.loading
の値をtrue
に変更して、API実行が完了したらstate.loading
の値をfalse
にする
-
render
メソッドrenderData
メソッドとrenderRequestButton
メソッドを実行して表示要素を構築する
-
renderData
メソッド- 条件に応じて次のようなJSXを戻り値として返す
- API実行中:
<p>データ取得中...</p>
を返す
- API実行していないときで、
state.data
がnull
のとき:<p>データなし</p>
を返す
- API実行していないときで、
state.data
に値があるとき:<p>{ JSON.stringify( this.state.data ) }</p>
を返す
- API実行中:
- 条件に応じて次のようなJSXを戻り値として返す
-
renderRequestButton
メソッド- 条件に応じて次のようなJSXを戻り値として返す
- API実行中:
- 「データ取得中...」と書かれた
button
要素を返す disabled
を使って、ボタンをクリック出来ないようにする
- 「データ取得中...」と書かれた
- API実行していないとき
- 「データを取得する」と書かれた
button
要素を返す - ボタンをクリックしたら
requestData
メソッドを実行する
- 「データを取得する」と書かれた
- API実行中:
- 条件に応じて次のようなJSXを戻り値として返す
-
-
npm start
を実行して、上に貼った「完成形」と同じ見ための表示がされれば完了
- このプルリクをフォークして作業を開始しても構わないし、自分で
create-react-app
を使ってゼロから環境を作りあげるでも良い。- このプルリクをフォークして作業を開始して、最終的にレビューを依頼するときは以下の動画を参考にすること
- 自分で
create-react-app
を使ってゼロから環境を作ったものをレビューに投げる時は以下の動画を参考にしてプルリクを作成すること
- 一般的な開発フローに慣れるために、git flowで作業を進めることをオススメする
- masterブランチからdevelopブランチを作成する
- developブランチからfeatureブランチを作成する
- featureブランチで作業をして、プルリクエストを作成するときは、developブランチにマージされるように作成する
課題をこなしていて、行き詰まったら以下の資料を参考にしていただければ解答にたどり着けるかと思います。
- Web白熱教室
- プルリクエスト(
git flow
の開発スタイルで機能毎にブランチを分けて実装を進める際に参考になるページ)