Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menyegarkan Halaman Pisau Cukur Utama Blazor daripada Komponen Kanak-kanak Selepas Panggilan API?
Dalam Blazor, kami sering menghadapi situasi di mana kami perlu mengemas kini reka letak halaman utama secara dinamik atau memuat semula kandungan berdasarkan peristiwa atau tindakan yang dicetuskan dalam komponen anak bersarang (seperti penyiapan panggilan API).
Pertimbangkan senario berikut:
Untuk mencapai penyelesaian di atas, kami menggunakan teknologi berikut:
Kami menggunakan perkhidmatan berskop (seperti AppState) untuk menyimpan dan berkongsi data API yang diambil supaya ia boleh diakses oleh halaman akar dan subkomponennya.
Kami mentakrifkan komponen Loading.razor boleh guna semula yang memaparkan pemutar apabila halaman dimuatkan dan kandungan apabila data sedia.
Kami mencipta perkhidmatan paparan (cth. WeatherForecastViewService) yang mengurus data dan mendedahkan peristiwa ListChanged yang dicetuskan apabila data asas berubah.
Dalam komponen anak, kami menyuntik perkhidmatan paparan dan memantau acara ListChangednya. Selepas perubahan dikesan, kami menggunakan StateHasChanged untuk menyegarkan semula komponen dan memaparkan data yang dikemas kini.
Dalam halaman SearchResults.razor utama kami:
<code class="language-csharp">@code { [Inject] WeatherForecastViewService viewService { get; set; } // API 调用完成后赋值为 true public bool IsLoaded { get; set; } protected override async Task OnInitializedAsync() { await GetForecastsAsync(); this.viewService.ListChanged += this.OnListChanged; } private async Task GetForecastsAsync() { // 代码省略,为简洁起见 } private void OnListChanged(object sender, EventArgs e) => this.InvokeAsync(this.StateHasChanged); public void Dispose() { this.viewService.ListChanged -= this.OnListChanged; } }</code>
<code class="language-csharp">@if (this.IsLoaded) { @this.ChildContent } else { // 显示加载微调器 }</code>
Dengan melaksanakan teknik ini, kami mewujudkan saluran komunikasi antara komponen kanak-kanak dan halaman utama, membolehkan kami mencetuskan kemas kini UI dan mengekalkan keadaan data yang konsisten merentas perhubungan ibu bapa-anak.
Atas ialah kandungan terperinci Bagaimana untuk Menyegarkan Halaman Pisau Cukur Utama Blazor daripada Komponen Kanak-kanak Selepas Panggilan API?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!