Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Muat Semula Halaman .RAZOR Utama daripada Komponen Kanak-Kanak Selepas Panggilan API?

Bagaimana untuk Muat Semula Halaman .RAZOR Utama daripada Komponen Kanak-Kanak Selepas Panggilan API?

Susan Sarandon
Lepaskan: 2025-01-09 19:42:41
asal
142 orang telah melayarinya

How to Refresh a Main .RAZOR Page from Child Components After an API Call?

Cara mencetus/memuat semula halaman .RAZOR utama daripada komponen anak selepas panggilan API selesai

Gambaran Keseluruhan Masalah

Apabila panggilan API selesai dan data tersedia, muat semula halaman .RAZOR utama perlu dicetuskan. Cabarannya adalah untuk mencari "pencetus" untuk menunjukkan bahawa data sudah sedia dan memulakan muat semula halaman dengan sewajarnya.

Penyelesaian

1. Laksanakan perkhidmatan skop (AppState)

Buat perkhidmatan berskop (AppState) untuk mengurus set data yang dikembalikan dan menjadikannya boleh diakses oleh semua komponen dalam aplikasi.

2. Komponen paparan (SearchResults.razor)

Dalam SearchResults.razor, dapatkan data daripada perkhidmatan AppState apabila halaman dimuatkan dan paparkannya dalam satu gelung. Apabila API mengembalikan data, gunakan pernyataan if untuk memaparkan data secara bersyarat atau memuatkan pemutar.

3. Komponen sub-penapis bersepadu

Apabila pengguna menggunakan penapis daripada komponen kanak-kanak, gunakan kod berikut dalam setiap komponen:

<code class="language-csharp">string href = "/searchresults" + // 其他参数在此处 ...
NavigationManager.NavigateTo(href);</code>
Salin selepas log masuk

Ini akan sentiasa mengubah hala ke SearchResults.razor apabila penapis digunakan.

4. Gunakan mod status/pemberitahuan

Laksanakan corak keadaan/pemberitahuan untuk menyiarkan perubahan dalam perkhidmatan AppState. Ini boleh dicapai dengan menggunakan kaedah berikut dalam komponen kanak-kanak:

<code class="language-csharp">// FilterRazorComponent01.razor 中的示例
//...

public async Task OnSomeEventAsync()
{
    // 模拟一些 API 调用并触发数据更新
    await Task.Delay(3000);
    AppState.NotifyListChanged(AppState.Records, EventArgs.Empty);
    NavigationManager.NavigateTo(NavigationManager.Uri);
}</code>
Salin selepas log masuk

5. Daftar acara pemberitahuan

Dalam SearchResults.razor, daftarkan acara ListChanged AppState dan panggil StateHasChanged apabila acara itu dicetuskan untuk mencetuskan muat semula.

<code class="language-csharp">this.AppState.ListChanged += this.OnListChanged;
//...

private void OnListChanged(object sender, EventArgs e)
    => this.InvokeAsync(this.StateHasChanged);</code>
Salin selepas log masuk

6. Mengendalikan muat semula halaman pada sub-acara

Apabila komponen kanak-kanak mencetuskan acara yang mengemas kini AppState, acara ListChanged akan disiarkan dan SearchResults.razor akan bertindak balas dengan mencetuskan StateHasChanged untuk memuat semula halaman. Ini memastikan bahawa halaman utama mengemas kini paparannya berdasarkan perubahan dalam komponen penapis.

Atas ialah kandungan terperinci Bagaimana untuk Muat Semula Halaman .RAZOR Utama daripada Komponen Kanak-Kanak Selepas Panggilan API?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan