プログラマ38の日記

主にプログラムメモです。

Salesforce: Lightningページ上に配置したコンポーネントでよく使う aura:hander

Lightningページで、Lightning Componentを組み込んだ際に、初期表示を行ったり、変更やレコードの登録のタイミングでLightning Componentの内容を更新するといった制御が必要です。

 

そんな時には aura:hander を使いますが、個人的によく使うのは次の3つです。

 

[Lightningページ上のLightning Componentでよく使うハンドラー]

  1. <aura:handler name="init" value="{!this}" action="{!c.doInit}" />
  2. <aura:handler event="force:refreshView" action="{!c.doRefreshView}" />
  3. <aura:handler event="force:showToast" action="{!c.doShowToast}" />

 

1つ目の name="init" は、画面の初期表示用ハンドラーで、ヘルプ上 valueInit で記載されています。
2つ目の event="force:refreshView" は、例えば詳細画面で値を変更した時に、Lightning Componentを更新するといった場合にこのハンドラーを使います。画面のすべてのデータ登録/更新でforce:refreshViewのイベントを受信できるわけではないので注意が必要です。(どのタイミングでこのイベントを受信できるかは下記にまとめました)
3つ目の event="force:showToast" は、例えば、「○○が登録されました。」といったトースト表示のタイミングでLightning Componentを更新するといった場合にこのハンドラーを使います。こちらはトースト表示されると動くのでわかりやすいです。(こちらも、どのタイミングでこのイベントを受信できるかは下記にまとめました)

         イベントを受信できるタイミング

操作 name="init" event="force:refreshView" event="force:showToast" 備考
初期表示      
chatterの投稿       投稿のイベントは受信できなかった
関連レコード     標準の関連レコードコンポーネント
活動   標準の活動コンポーネント
所有者の変更    
レコードタイプの変更 name="init"を最後に受信する
編集画面から保存      
関連リストから登録      
関連リストから更新    ○  
関連リストから削除      

 

関連リストの登録、削除はevent="force:showToast"でしか受信できないので注意です。