Salesforce: Lightningページ上に配置したコンポーネントでよく使う aura:hander
Lightningページで、Lightning Componentを組み込んだ際に、初期表示を行ったり、変更やレコードの登録のタイミングでLightning Componentの内容を更新するといった制御が必要です。
そんな時には aura:hander を使いますが、個人的によく使うのは次の3つです。
[Lightningページ上のLightning Componentでよく使うハンドラー]
- <aura:handler name="init" value="{!this}" action="{!c.doInit}" />
- <aura:handler event="force:refreshView" action="{!c.doRefreshView}" />
- <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"でしか受信できないので注意です。