Oracle JET仮想DOMアプリケーションのデータ・レコードの削除
はじめに
このチュートリアルでは、Oracle JavaScript Extension Toolkit (Oracle JET)仮想DOMアプリケーションを使用して、既存のデータ・レコードを削除し、RESTサービスに変更を送信する方法を示します。
目的
このチュートリアルでは、既存のデータ・レコードを削除して、変更をRESTサービスに送信する方法を学習します。
前提条件
- Node.jsのインストールを含むOracle JET仮想DOMアプリケーションを作成するように設定された開発環境
- この学習パスの前のチュートリアルの完了、 Oracle JET仮想DOMアプリケーションのデータ・レコードの更新
- 完了したアプリケーションJET-Virtual-DOM-app-final.zipがオプションでダウンロードされます
タスク1: 「削除」ボタンの作成
-
JET-Virtual-DOM-app/src/components/ActivityItemディレクトリに移動し、エディタでItemActionsContainer.tsxファイルを開きます。 -
Props型の別名で、追加のdeleteプロパティを定義します。type Props = { create: () => void; edit: () => void; itemSelected: Partial<Item>; delete: () => void; }; -
<oj-button id="updateButton"要素を検索し、その下にoj-button要素を追加します。onojAction属性を{props.delete}に、disabled属性をhideActionsに設定します。return ( <div> <oj-button id="createButton" onojAction={props.create}>Create</oj-button> <oj-button id="updateButton" disabled={hideActions} onojAction={props.edit}>Update</oj-button> <oj-button id="deleteButton" disabled={hideActions} onojAction={props.delete}>Delete</oj-button> </div> -
ItemActionsContainer.tsxファイルを保存します。コードはこの
final-ItemActionsContainer.tsx.txtファイルに似ているはずです。
タスク2: レコードの削除の処理
RESTサービスからレコードを削除するには、フェッチAPIおよびHTTP DELETEメソッドを使用します。RESTDataProviderのmutateメソッドを使用して、RESTDataProviderインスタンスを更新します。
-
JET-Virtual-DOM-app/src/components/ActivityItemディレクトリに移動し、エディタでActivityItemContainer.tsxファイルを開きます。 -
ActivityItemContainer関数内で、レコードを更新する前のコードの下に、deleteItemというメソッドを作成します。このメソッドは、アイテムを削除する確認をユーザーに要求し、確認に成功すると、RESTサービスに送信する
DELETEリクエストを作成します。DELETE操作が成功すると、このメソッドはRESTDataProvidermutateイベントを起動して、アイテムが削除されたことをデータ・プロバイダ・コンシューマに通知します。const deleteItem = async () => { const really = confirm("Do you really want to delete this item?"); if (really) { // Create and send request to REST service to delete item const request = new Request(`${restServerURLItems}${itemData.id}`, { method: "DELETE", }); const response = await fetch(request); // Call mutate method to notify dataprovider consumers that an // item has been removed if (response.status === 200) { const removedRowKey = itemData.id; const removedRowMetaData = { key: removedRowKey }; props.data?.mutate({ remove: { data: [itemData.id], keys: new Set([removedRowKey]), metadata: [removedRowMetaData], }, }); } else { alert( "Delete failed with status " + response.status + " : " + response.statusText ); } console.log("Deleted item."); } else { console.log("OK, we canceled that delete."); } }; -
return文で、ItemActionsContainer要素をdelete属性で更新します。<div id="container"> <h3>Activity Items</h3> <ItemActionsContainer edit={openEditDialog} delete={deleteItem} itemSelected={activityItemValue} create={openCreateDialog} /> . . . </div> -
ActivityItemContainer.tsxファイルを保存します。コードは、この
final-delete-ActivityItemContainer.tsx.txtファイルに似ています。
タスク3: 仮想DOMアプリケーションの実行とレコードの削除
- 端末ウィンドウで、仮想DOMアプリケーションを実行します。
npx ojet serve -
アプリで、Baseballアクティビティをクリックし、SureFire Ball (Set of 4)アイテムをクリックします。
-
「削除」ボタンをクリックします。確認ウィンドウがオープンします。
-
「OK」をクリックします。
セクションがリフレッシュされ、項目が削除されました。
-
実行中の仮想DOMアプリケーションを表示するブラウザ・ウィンドウまたはタブを閉じます。
- ターミナル・ウィンドウでCtrl+Cを押し、プロンプトが表示されたら、
yと入力してOracle JETツール・バッチ・ジョブを終了します。
タスク4: (オプション)リストアされたアプリケーションからの仮想DOMアプリケーションの実行
指定されたコードから完了したOracle JET仮想DOMアプリケーションを実行する場合は、ダウンロードしたアーカイブ・ファイルからアプリケーションをリストアできます。ストライプ化および圧縮されたOracle JET仮想DOMアプリケーションを操作するには、抽出されたアプリケーション内で、Oracle JETツールや必要なライブラリおよびモジュールなどのプロジェクトの依存関係をリストアする必要があります。
JET-Virtual-DOM-app-final.zipファイルをダウンロードし、完了したアプリケーションの内容をJET-Virtual-DOM-app-finalディレクトリに抽出します。- ターミナル・ウィンドウで、
JET-Virtual-DOM-app-finalディレクトリに移動し、Oracle JET仮想DOMアプリケーションをリストアします。npm install - 確認待ち。
Success: Restore completeアプリケーションを実行する準備ができました。
- 仮想DOMアプリケーションを実行し、ブラウザでテストします。
npx ojet serve -
実行中の仮想DOMアプリケーションを表示するブラウザ・ウィンドウまたはタブを閉じます。
- ターミナル・ウィンドウでCtrl+Cを押し、プロンプトが表示されたら、
yと入力してOracle JETツール・バッチ・ジョブを終了します。
次のステップ
このチュートリアルでは、仮想DOM Webアプリケーションの構築に関するこの学習パスのモジュールRESTサービスを使用したCRUD操作を終了します。
- Oracle JETによるREST APIからのデータのフェッチ
- Oracle JET仮想DOMアプリケーションでデータ・レコードを作成するためのフォームの作成
- Oracle JET仮想DOMアプリケーションでのデータ・レコードの更新
- Oracle JET仮想DOMアプリケーションでのデータ・レコードの削除
「Oracle JETでのエンドツーエンド・テスト」モジュールで、学習パス「Oracle JETでのテスト環境の設定」の次のチュートリアルに進むことができます。
仮想DOM学習パスのメイン・ページに戻ると、仮想DOMアプリケーションの構築に関するすべてのモジュール、およびその他の学習パスにアクセスすることもできます。
その他の学習リソース
docs.oracle.com/learnで他のラボを確認するか、Oracle Learning YouTubeチャネルで無料のラーニング・コンテンツにアクセスしてください。また、education.oracle.com/learning-explorerにアクセスして、Oracle Learning Explorerになります。
製品ドキュメントについては、Oracle Help Centerを参照してください。
Delete data records in an Oracle JET virtual DOM app
F70640-02