Laravel×ReactでつくるSPAスケジュールアプリ【⑥更新】

LaravelとReactで作るSPAアプリ第6段です。
次にReactでスケジュールを更新しましょう。

Laravel×ReactでつくるSPAスケジュールアプリ【⑥更新】

まずはバックエンドから

前回までで、スケジュールの作成は完成しています。

今回はスケジュールの青い部分をクリックすると新規登録と同じポップアップが発生し、
内容の更新ができる機能を実装していきましょう。
まずはバックエンドからです。

ScheduleController.php
前回のスケジュール登録処理の下に追記しましょう。
登録ポップアップへの遷移、および登録処理そのものですね。

登録処理とほとんど変わらない内容になります。
ルート情報も更新しましょう。

api.php
editが更新画面への遷移。updateが更新処理そのものとなっています。
バックエンドの処理は完了です。

次に更新用ポップアップを作成しましょう。
これも登録用のポップアップを使いまわして作成します。

更新用のポップアップを実装する

次はフロントエンドです。更新用のポップアップを作成します。
Example.jsファイルを以下のように編集します。

Example.js
returnの前の登録処理の後ろにでも追記してください。
次にreturnの中身にクリック時にダイアログを開く処理を記載します。

Example.js
onClickで動くので、最後に更新ダイアログを記載していきましょう。

Example.js
登録ダイアログの下に追記すると良いでしょう。
さて、ビルドをして更新フォームの確認をしましょう。

「スケジュール更新」という文字が確認できます。
データは連携していないので、取得はしていません。
次のステップで、データの取得や更新をしていきましょう。

更新用データを取得しよう!

データを取得してダイアログにデータを表示しましょう。
Example.jsの関数をまとめてある部分に、配列とデータ取得の関数を追加します。

editDataに取得したデータを格納しています。
このデータを、ダイアログ内部で取得するようにします。

各種入力インプットに「value={editData.項目名}」を追加しています。
入っている内容をデータから適用させてあげるだけで、表示がされます。
試しにビルドして、前の記事で登録した
スケジュールをクリックしてみましょう。

データが取得できましたね。
これであとはダイアログの中身を変更して、更新をするだけです。

データを更新しよう!

最後に更新作業をしておしまいです。
Example.jsに更新処理を追記します。

登録処理とほぼ同じですね。入力値を保存し、そのデータでデータベースを更新します。
入力値を反映させるために、onChangeを追加します。

最後に更新ダイアログの登録ボタンにonClickを指定して完成です。
試しに登録したデータを更新してみましょう。

実際にいろいろ入力してみて、上記の画像のように最終的に「画面からの更新テスト」にできればOKです。
ここまで実装で来たら、SourceTreeでコミットしておきましょう。

さて、今回はここまでです。次はスケジュールの削除機能を実装していきましょう。
今回もここまでのExample.jsのソースを下の折り畳みの中に記載しておきますね。

クリックでExample.jsの全ソース表示
Laravel×Reactでつくるスケジュールアプリ
環境構築 Git、Reactの導入
カレンダー表示 スケジュール表示
スケジュール登録 スケジュール更新 
スケジュール削除 関数化Ⅰ
関数化Ⅱ