registerRefreshHandler()

コンポーネントの更新ハンドラーメソッドを登録して、更新処理に含めます。

  • contextElement — (必須) 更新処理に参加しているコンテナを表す HTMLElement
  • providerMethod — (必須) 更新処理の開始時に呼び出すコールバックメソッドを特定する Function。ハンドラーコールバックでは、その特定の要素の更新状況を表す Promise を返す必要があります。

更新ツリーでこのコンポーネントのノードを受け取るコンテナを一意に識別するための数値の refreshNode.handle 値を返します。この値を unregisterRefreshHandler() に渡すことで、このコンポーネントの更新ハンドラーメソッドを更新処理から削除することができます。

registerRefreshHandler() メソッドを使用し、更新可能なビューに属するコンポーネントを登録して、そのコンポーネントが更新処理に含まれるようにします。

ビューの更新に含めるには、コンポーネントでハンドラーメソッドを登録します。コンテナの connectedCallback() 内で registerRefreshHandler() メソッドを使用して、ハンドラーメソッドを登録します。

Lightning Locker が有効な組織でコンポーネントを実行する必要がある場合、connectedCallback() 内のコードコメントで、registerRefreshHandler() パラメーターの変更された形式を使用します。

コンテナが RefreshEvent を受け取ると、ハンドラーメソッドが呼び出されます。登録したコンテナは、登録済み更新ハンドラーの「更新ツリー」の構成要素となり、その順序は DOM をエミュレートします。

更新ツリーに登録された更新メソッドは、登録済みコンテナのノードから幅優先順に呼び出されます。これにより、下位 (子) のハンドラーが呼び出される前に、上位 (親) のハンドラーが必ず解決されます。

登録済みコンテナのコールバックメソッドで、次の処理を実行する必要があります。

  • Boolean に解決される Promise を返します。
    • true: コンポーネントが更新の操作を完了し、このノードから更新ツリーを下って更新処理を継続する必要がある場合
    • このノードの子要素へ更新処理を継続しない場合は false
  • 現在の状態に従って、必要な更新の参照操作を実行します。
  • 必要に応じて、データと状態を再度同期します。
  • 処理中に、スピナーやトーストなど、適切な UI を表示します。

disconnectedCallback()unregisterRefreshHandler() をコールして、コンポーネントのハンドラーメソッドの登録を解除する必要があります。