XML 設定ファイルの要素
HTML テンプレートディレクティブ
HTML テンプレートエラー
デコレータ
@salesforce モジュール
RefreshStatus の定数
RefreshEvent データ型
registerRefreshContainer()
unregisterRefreshContainer()
registerRefreshHandler()
unregisterRefreshHandler()
PageReference の型
registerRefreshHandler()コンポーネントの更新ハンドラメソッドを登録して、更新処理に含めます。
1import { LightningElement, wire } from "lwc";
2import { registerRefreshContainer } from "lightning/refresh";
3
4export function registerRefreshHandler(contextElement, providerMethod);contextElement — (必須) 更新処理に参加しているコンテナを表す HTMLElement。providerMethod — (必須) 更新処理の開始時に呼び出すコールバックメソッドを特定する Function。ハンドラコールバックでは、その特定の要素の更新状況を表す Promise を返す必要があります。更新ツリーでこのコンポーネントのノードを受け取るコンテナを一意に識別するための数値の refreshNode.handle 値を返します。この値を unregisterRefreshHandler() に渡すことで、このコンポーネントの更新ハンドラメソッドを更新処理から削除することができます。
registerRefreshHandler() メソッドを使用し、更新可能なビューに属するコンポーネントを登録して、そのコンポーネントが更新処理に含まれるようにします。
ビューの更新に含めるには、コンポーネントでハンドラメソッドを登録します。コンテナの connectedCallback() 内で registerRefreshHandler() メソッドを使用して、ハンドラメソッドを登録します。
Lightning Locker が有効な組織でコンポーネントを実行する必要がある場合、connectedCallback() 内のコードコメントで、registerRefreshHandler() パラメータの変更された形式を使用します。
Tip
コンテナが RefreshEvent を受け取ると、ハンドラメソッドが呼び出されます。登録したコンテナは、登録済み更新ハンドラの「更新ツリー」の構成要素となり、その順序は DOM をエミュレートします。
1import { LightningElement } from "lwc";
2import { registerRefreshHandler, unregisterRefreshHandler } from "lightning/refresh";
3export default class RefreshHandler extends LightningElement {
4 refreshHandlerID;
5 connectedCallback() {
6 this.refreshHandlerID = registerRefreshHandler(this, this.refreshHandler);
7 // if the component runs in an org with Lightning Locker instead of LWS, use
8 // this.refreshContainerID = registerRefreshHandler(this.template.host, this.refreshHandler.bind(this));
9 }
10 disconnectedCallback() {
11 unregisterRefreshHandler(this.refreshHandlerID);
12 }
13 refreshHandler() {
14 // example usage case for refresh participant
15 // fetch some data and report status once complete
16 let endPoint = "https://api.<your company>.com";
17 return new Promise((resolve) => {
18 fetch(endPoint, {
19 method: "GET",
20 });
21 resolve(true);
22 });
23 }
24}更新ツリーに登録された更新メソッドは、登録済みコンテナのノードから幅優先順に呼び出されます。これにより、下位 (子) のハンドラが呼び出される前に、上位 (親) のハンドラが必ず解決されます。
登録済みコンテナのコールバックメソッドで、次の処理を実行する必要があります。
Boolean に解決される Promise を返します。
true: コンポーネントが更新の操作を完了し、このノードから更新ツリーを下って更新処理を継続する必要がある場合falsedisconnectedCallback() で unregisterRefreshHandler() をコールして、コンポーネントのハンドラメソッドの登録を解除する必要があります。
The Japanese Summer '24 guide is now live