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() をコールして、コンポーネントのハンドラメソッドの登録を解除する必要があります。