レコードの操作に関する使用上の考慮事項
基本コンポーネントを使用してレコードを操作することで、追加の設定なしで Lightning データサービスを利用できますが、いくつかのカスタム使用事例では考慮が必要です。
次の使用事例について考えてみましょう。
- レコードタイプに基づいてレコードフォームを (レコードタイプに基づいた選択リストの値を含めて) 表示するために、レコードタイプ ID を取得する。
- レコード送信が正常に完了したことを親コンポーネントに通知するために、カスタムイベントをディスパッチして処理する。
選択リスト項目は、レコードタイプに基づいて値を表示します。lightning-record-form
または lightning-record-edit-form
の操作において、オブジェクトに複数のレコードタイプがあり、デフォルトのレコードタイプがない場合は、レコードタイプ ID を指定する必要があります。指定しない場合は、デフォルトのレコードタイプが使用されます。
レコードタイプの情報を取得するには、getObjectInfo
ワイヤアダプタを使用します。
record-type-id
属性を提供することで、レコードタイプに基づいたレコード作成フォームを表示します。次の例は、取引先レコードページに配置できるフォームを示しています。フォームには、項目と、指定されたレコードタイプに基づいた選択リストの値が表示されます。
getObjectInfo
モジュールと取引先オブジェクトへの参照をインポートします。recordTypeId
getter は、レコードタイプ名の Special Account
と一致する ID を返します。
recordTypeInfos
プロパティは、組織で使用できるレコード ID のマップを返します。
lightning-record-form
、lightning-record-edit-form
、lightning-record-view-form
の各コンポーネントは、onsubmit
、onsuccess
、onerror
の各属性を介してイベントを処理する機能を備えています。フォームデータをコンテナコンポーネントに渡すには、カスタムイベントを作成します。
c-wrapper
というコンテナコンポーネントがあり、フォームは c-account-creator
というコンポーネントにあるとします。このコンテナコンポーネントに新しいレコードの ID を渡します。c-wrapper
で c-account-creator
のインスタンスを作成します。
レコードが正常に作成されると、newrecord
イベントが lightning-record-form
上の onsuccess
ハンドラによってディスパッチされ、さらにこのハンドラは handleNewRecord
メソッドをコールしてレコード ID を渡します。
c-account-creator
では、新たに作成されたレコードの ID を含むメッセージが createStatus
プロパティによって表示されます。
submit
イベントでは ID は使用できません。success
イベントを使用して ID を返します。
handleAccountCreated
メソッドは success
イベントを処理します。