Apex wire サービスでデータをアプリケーションに取得するサンプル
環境
Salesforce Apex
構文
import { adapterId } from 'adapter-module’;
@wire(adapterId, adapterConfig) propertyOrFunction;
adapterId (ID) — wire アダプターの ID。
adapter-module (文字列) — wire アダプター関数が含まれるモジュールの ID。
adapterConfig (オブジェクト) — wire アダプター固有の設定オブジェクト。
propertyOrFunction — wire サービスからデータのストリームを受信する非公開のプロパティまたは関数。
プロパティが @wire でデコレートされている場合、結果はそのプロパティの data プロパティまたは error
プロパティに返されます。関数が @wire でデコレートされている場合、
結果は data プロパティと error プロパティを持つオブジェクトで返されます。
使用例
import { LightningElement, wire } from 'lwc'; import { getRecord, getFieldValue } from 'lightning/uiRecordApi'; import Id from '@salesforce/user/Id'; import NAME_FIELD from '@salesforce/schema/User.Name'; const fields = [NAME_FIELD]; export default class Selector extends LightningElement { selectedProductId; handleProductSelected(evt) { this.selectedProductId = evt.detail; } userId = Id; @wire(getRecord, { recordId: '$userId', fields }) user; get name() { return getFieldValue(this.user.data, NAME_FIELD); } }
説明
行 1 で、wire サービスを lwc からインポートします。
行 2 で、getRecord と getFieldValue の adapterId と adapter-module を lightning/uiRecordApi からインポートします。
行 3 で、@salesforce モジュールを使用して現在のユーザー ID をインポートします。
行 4 で、User.Name の @salesforce スキーマをインポートします。
行 12 で、@wire デコレーターを使用して、ワイヤーサービスで getRecord をコールし、userId を渡して fields を取得します。
行 13 で、user を @wire コールのレシーバーとして設定します。