データガイドライン
Lightning データサービス
ワイヤサービスについて
レコードデータの取得
エラーの処理
ワイヤサービスでの基本コンポーネントの使用
Apex からの API のコール
Lightning Data サービスは、サーバのリソース (レコード、オブジェクトなど) にアクセスできない場合にエラーを返します。
たとえば、ワイヤアダプタへの入力が正しくない (例: レコード ID が不正、必須項目が欠落している) 場合には、エラーが発生します。レコードがキャッシュになく、サーバがオフラインである場合にもエラーが返されます。また、サーバ上でリソースが削除されたり、共有や表示の設定が更新されたりすることで、そのリソースにアクセスできなくなる場合もあります。
FetchResponse エラーオブジェクトは、取得 API の応答オブジェクトの後にモデリングされます。これには、レスポンスボディ、状況コード、メッセージが含まれます。
body (オブジェクトまたは配列) — 基になる API により定義されたレスポンスボディ。ok (Boolean) — 応答が成功であったかどうかを示します。エラーの場合、ok は常に false で、状況コードは 400 ~ 599 の範囲内となります。status (数字) — 応答の状況コードが含まれます。たとえば、リソースが見つからない場合は 404、内部サーバエラーでは 500 が含まれます。statusText (文字列) — 状況コードに対応する状況メッセージが含まれます。たとえば、状況コード 404 では NOT_FOUND が含まれます。エラーオブジェクトを使用して、getRecord ワイヤアダプタから返されるエラーを処理します。
1<template>
2 <lightning-card title="Handle Error" icon-name="standard:contact">
3 <template lwc:if={error}>
4 <p>{error}</p>
5 </template>
6 </lightning-card>
7</template>JavaScript コードは、エラー本体が配列またはオブジェクトであるかどうかを確認して、エラーメッセージを返します。
1import { LightningElement, api, wire, track } from "lwc";
2import { getRecord } from "lightning/uiRecordApi";
3
4const fields = [
5 // This invalid field causes @wire(getRecord) to return an error
6 "Contact.invalidField",
7];
8
9export default class WireGetRecordDynamicContact extends LightningElement {
10 @api recordId;
11
12 @track error;
13
14 @wire(getRecord, { recordId: "$recordId", fields })
15 wiredRecord({ error, data }) {
16 if (error) {
17 this.error = "Unknown error";
18 if (Array.isArray(error.body)) {
19 this.error = error.body.map((e) => e.message).join(", ");
20 } else if (typeof error.body.message === "string") {
21 this.error = error.body.message;
22 }
23 this.record = undefined;
24 } else if (data) {
25 // Process record data
26 }
27 }
28}エラーのレスポンスボディは、そのエラーを返す API によって異なります。
getRecord ワイヤアダプタなどの UI API 読み取り操作では、error.body はオブジェクトの配列として返されます。createRecord ワイヤアダプタなどの UI API 書き込み操作では、error.body はオブジェクトとして返され、多くの場合、オブジェクトレベルおよび項目レベルのエラーを伴います。error.body はオブジェクトとして返されます。error.body はオブジェクトとして返されます。関連トピック
The Japanese Summer '24 guide is now live