Salesforce ワイヤサービスを使ってApexメソッドを呼び出す

環境
Salesforce Apex

概要
Apex メソッドがキャッシュ可能で (データを変更しない) 場合は、
ワイヤーサービスを使用してコンポーネントから呼び出すことができます。
このメソッドには @AuraEnabled(cacheable=true) アノテーションを付加する必要があります。

1.TestAccountController Apex コントローラーの定義

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
public with sharing class TestAccountController {
@AuraEnabled(cacheable=true)
public static List<Account> getAccounts(){
return [SELECT Id,Name FROM Account WHERE AnnualRevenue >10000];
}
}
public with sharing class TestAccountController { @AuraEnabled(cacheable=true) public static List<Account> getAccounts(){ return [SELECT Id,Name FROM Account WHERE AnnualRevenue >10000]; } }
public with sharing class TestAccountController {
       @AuraEnabled(cacheable=true)
      public static List<Account> getAccounts(){
       return [SELECT Id,Name FROM Account WHERE AnnualRevenue >10000];
      }
}

2.JavaScriptコード
ワイヤーサービスを使用して Apex getAccounts() メソッドをコールします。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
import { LightningElement, wire} from 'lwc';
// インポートする@AuraEnabledメソッド
import getAccounts from '@salesforce/apex/TestAccountController.getAccounts'
export default class HelloApexAccounts extends LightningElement {
accounts=[];
//ワイヤーサービスを利用
@wire(getAccounts,{})
wiredAccounts({error, data}){
if(error) {
this.error = error;
} else if(data){
this.accounts = data;
}
}
}
import { LightningElement, wire} from 'lwc'; // インポートする@AuraEnabledメソッド import getAccounts from '@salesforce/apex/TestAccountController.getAccounts' export default class HelloApexAccounts extends LightningElement { accounts=[]; //ワイヤーサービスを利用 @wire(getAccounts,{}) wiredAccounts({error, data}){ if(error) { this.error = error; } else if(data){ this.accounts = data; } } }
import { LightningElement, wire} from 'lwc';
// インポートする@AuraEnabledメソッド
import getAccounts from '@salesforce/apex/TestAccountController.getAccounts'
export default class HelloApexAccounts extends LightningElement {
   accounts=[];
   //ワイヤーサービスを利用
   @wire(getAccounts,{})
   wiredAccounts({error, data}){
     if(error) {
          this.error = error;
       } else if(data){ 
          this.accounts = data;
       }
   }
}

 

IT

Posted by arkgame