Lightning Web コンポーネントで使用するために、AccountController クラスに updateAccounts という Apex メソッドが含まれているコード ステートメントはどれですか。
正解:D
When working with a Lightning Web Component (LWC), the correct syntax for importing an Apex method is: import methodName from "@salesforce/apex/ControllerName.methodName";. Why not other options? A,B, andC: These use incorrect syntax for importing Apex methods in LWCs. Lightning Web Components Documentation
最新のコメント (最新のコメントはトップにあります。)
正解は **D** です。
### 領域の確認
* **領域:** **3. ユーザーインターフェース (User Interface)**
* **トピック:** Lightning Web Components (LWC)、Apexメソッドのインポート
-----
### 正解の解説
**D. "@salesforce/apex/AccountController.updateAccounts" から updateAccounts をインポートします。**
LWC JavaScript ファイル内で Apex クラスのメソッドを使用するには、Salesforce が提供する特定のモジュール構文を使用してインポートする必要があります。
**正しい構文のルール:**
`import [任意のメソッド名] from '@salesforce/apex/[クラス名].[メソッド名]';`
このルールに当てはめると:
* **モジュールスコープ:** `@salesforce/apex/` (必須)
* **クラス名:** `AccountController`
* **メソッド名:** `updateAccounts`
これらを連結した **`@salesforce/apex/AccountController.updateAccounts`** が正しいパスとなります。
### 実装例
**Apex クラス (AccountController.cls):**
```apex
public with sharing class AccountController {
// LWCから呼ぶには @AuraEnabled が必須
@AuraEnabled
public static void updateAccounts(List<Account> data) {
update data;
}
}
```
**LWC JavaScript (myComponent.js):**
```javascript
import { LightningElement } from 'lwc';
// 正解の構文でインポート
import updateAccounts from '@salesforce/apex/AccountController.updateAccounts';
export default class MyComponent extends LightningElement {
handleSave() {
// 命令的 (Imperative) に呼び出す例
updateAccounts({ data: this.accounts })
.then(() => {
console.log('Success');
})
.catch(error => {
console.error(error);
});
}
}
```
-----
### 不正解の解説
**A, B, C** はすべて構文エラーです。
* **A:** `'AccountControlles'` だけではモジュールとして認識されません。また `@salesforce/apex/` プレフィックスが欠落しています。
* **B:** `Salesforce/apex/...` の先頭に `@` がありません(LWCの標準モジュールは `@` で始まります)。また、末尾の `:` も不正です。
* **C:** `Account@ontroller` という書き方は存在しま...