API 呼び出し後のサブコンポーネントからのメイン Razor ページの更新
このガイドでは、API 呼び出し後にサブコンポーネントからメイン Razor ページを更新するという課題に対処し、特にデータ取得中の読み込み状態の維持に焦点を当てます。 このソリューションは、スコープ指定されたサービスと Blazor の InvokeAsync(StateHasChanged)
メソッドを利用します。
問題: 最初の検索では読み込み中のスピナーが表示されますが、後続のフィルター アプリケーションはそれをトリガーできません。
ソリューション: このソリューションは、スコープ指定されたサービスを使用して、アプリケーションの状態を管理し、コンポーネント間の更新を調整します。
実装手順:
スコープ付きサービス (AppState): API データが受信されたかどうかを追跡するために、スコープ付きサービス (例: AppState
) を作成します。 このサービスは、API_Data_Received
などのブール型フラグを保持します。
サブコンポーネント フィルタリング (FilterRazorComponent): サブコンポーネント内でフィルターが適用される場合:
AppState.API_Data_Received
を false
に設定し、データ更新の必要性を示します。SearchResults.razor
ページに移動し、必要なフィルター パラメーターを渡します。 データを効率的に渡すには、ナビゲーション パラメーターの使用を検討してください。メイン ページ (SearchResults.razor):
AppState
サービスを挿入します。OnInitializedAsync()
で、AppState.API_Data_Received
を非同期にチェックします。AppState.API_Data_Received
が false
の場合、読み込みインジケーターを表示し、API 呼び出しを開始します。AppState.API_Data_Received
を true
に設定し、InvokeAsync(StateHasChanged)
を呼び出して UI を更新し、読み込みインジケーターを削除し、更新された結果を表示します。このアプローチにより、メインの SearchResults.razor
ページが一貫して読み込み状態を反映し、サブコンポーネントのインタラクションによってトリガーされる各 API 呼び出しの後にそのコンテンツが更新されます。 スコープ指定されたサービスを使用すると、アプリケーションの状態を管理し、UI の更新をトリガーするクリーンで効率的な方法が提供されます。
以上がAPI 呼び出し後にサブコンポーネントからメイン Razor ページを更新するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。