問題
searchTermを指定してAccountsのリストを返すApexメソッドgetAccountsは、Lightning Webコンポーネントで使用できます。getAccountsメソッドを使用するLightning Webコンポーネントのプロパティの正しい定義は何ですか。
- @wire(getAccounts, {searchTerm: ‘$searchTerm’})
accoutList; - @wire(getAccounts, ‘$searchTerm’)
accountList; - @AuraEnabled(getAccounts, {searchTerm: ‘$searchTerm’})
accountList; - @AuraEnabled(getAccounts, ‘$searchTerm’)
accountList;
正解
- @wire(getAccounts, {searchTerm: ‘$searchTerm’})
accoutList; - @wire(getAccounts, ‘$searchTerm’)
accountList; - @AuraEnabled(getAccounts, {searchTerm: ‘$searchTerm’})
accountList; - @AuraEnabled(getAccounts, ‘$searchTerm’)
accountList;
解説
@wire
は、Lightning Web Components (LWC) でSalesforceのデータやApexメソッドを簡単に取得するための特別な機能を提供するアノテーションです。このアノテーションを使うことで、データの取得が裏側で自動的に行われ、コンポーネントにデータが利用可能になると、それに応じてコンポーネントが更新されます。
@wire(データソースやApexメソッド, パラメータオブジェクト)
プロパティ名;
- データソースやApexメソッド
-
取得したいデータのソースや呼び出したいApexメソッドを指定します。例えば、
getAccounts
というApexメソッドを呼び出す場合、この部分にそのメソッド名を指定します。 - パラメータオブジェクト
-
メソッドやデータソースに渡す必要がある任意のパラメータをオブジェクトとして指定します。例えば、
searchTerm
というパラメータを持つApexメソッドを呼び出す場合、{ searchTerm: '$searchTerm' }
のように指定します。ここでの$searchTerm
は、コンポーネントのsearchTerm
プロパティを動的に参照しています。 - プロパティ名
-
取得したデータを格納するためのプロパティ名を指定します。このプロパティは、データが取得されたときにそのデータを保持します。例えば、
accountList
という名前のプロパティを使用してデータを格納する場合、この部分にその名前を指定します。
総合すると、以下のような形になります。
@wire(getAccounts, { searchTerm: '$searchTerm' })
accountList;
このコードは、getAccounts
というApexメソッドを呼び出し、searchTerm
というパラメータにコンポーネントのsearchTerm
プロパティの値を動的に渡して、取得したデータをaccountList
というプロパティに格納するものです。
それぞれの選択肢の理由について説明します。
□ @wire(getAccounts, {searchTerm: ‘$searchTerm’}) accoutList;
これは正解です。@wireアノテーションを使用して、getAccountsというApexメソッドからデータを取得しています。searchTermという名前のパラメータに動的にコンポーネントのsearchTermプロパティの値を渡しています。そして、取得したデータはaccoutListというプロパティに格納されます。
□ @wire(getAccounts, ‘$searchTerm’) accountList;
これは不正解です。@wireアノテーションでパラメータを渡す際には、オブジェクト形式で指定する必要があります。
□ @AuraEnabled(getAccounts, {searchTerm: ‘$searchTerm’}) accountList;
これは不正解です。@AuraEnabledはApexクラスのメソッドをAuraコンポーネントやLWCで使用可能にするためのアノテーションです。しかし、LWC内でこのように直接使用することはできません。
□ @AuraEnabled(getAccounts, ‘$searchTerm’) accountList;
これは不正解です。@AuraEnabledアノテーションは、ApexメソッドをAuraコンポーネントやLWCで使用するためのものであり、LWC内でこのような形式で使用することはできません。
コメント