From fc339ca9e7c3c2ed1ffe0bfddced6fe3d4c4598e Mon Sep 17 00:00:00 2001 From: kjh2064 Date: Mon, 29 Jun 2026 15:27:03 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20Blazor=20Server=20Prerendering=20?= =?UTF-8?q?=EC=8B=9C=EC=A0=90=EC=9D=98=20401=20=EC=97=90=EB=9F=AC=20?= =?UTF-8?q?=EB=B0=A9=EC=A7=80=EB=A5=BC=20=EC=9C=84=ED=95=B4=20CRM=20?= =?UTF-8?q?=ED=99=94=EB=A9=B4=20API=20=EB=A1=9C=EB=93=9C=20=EC=88=98?= =?UTF-8?q?=EB=AA=85=20=EC=A3=BC=EA=B8=B0=EB=A5=BC=20OnAfterRenderAsync?= =?UTF-8?q?=EB=A1=9C=20=EC=9D=BC=EA=B4=84=20=EA=B0=9C=EC=84=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Admin/Pages/ConsultingActivities.razor | 8 +++- .../Components/Admin/Pages/Contracts.razor | 8 +++- .../Components/Admin/Pages/Dashboard.razor | 38 ++++++++++--------- .../Admin/Pages/RevenueTrackings.razor | 8 +++- .../Admin/Pages/TaxFilingSchedules.razor | 9 ++++- .../Components/Admin/Pages/TaxProfiles.razor | 8 +++- 6 files changed, 53 insertions(+), 26 deletions(-) diff --git a/TaxBaik.Web/Components/Admin/Pages/ConsultingActivities.razor b/TaxBaik.Web/Components/Admin/Pages/ConsultingActivities.razor index e60ff43..959495d 100644 --- a/TaxBaik.Web/Components/Admin/Pages/ConsultingActivities.razor +++ b/TaxBaik.Web/Components/Admin/Pages/ConsultingActivities.razor @@ -124,9 +124,13 @@ private ConsultingActivity? editingActivity; private ConsultingActivityForm activityForm = new(); - protected override async Task OnInitializedAsync() + protected override async Task OnAfterRenderAsync(bool firstRender) { - await LoadData(); + if (firstRender) + { + await LoadData(); + StateHasChanged(); + } } private async Task LoadData() diff --git a/TaxBaik.Web/Components/Admin/Pages/Contracts.razor b/TaxBaik.Web/Components/Admin/Pages/Contracts.razor index f967271..dce7afe 100644 --- a/TaxBaik.Web/Components/Admin/Pages/Contracts.razor +++ b/TaxBaik.Web/Components/Admin/Pages/Contracts.razor @@ -134,9 +134,13 @@ private bool isDialogOpen; private ContractForm contractForm = new(); - protected override async Task OnInitializedAsync() + protected override async Task OnAfterRenderAsync(bool firstRender) { - await LoadData(); + if (firstRender) + { + await LoadData(); + StateHasChanged(); + } } private async Task LoadData() diff --git a/TaxBaik.Web/Components/Admin/Pages/Dashboard.razor b/TaxBaik.Web/Components/Admin/Pages/Dashboard.razor index 643f3f8..df99146 100644 --- a/TaxBaik.Web/Components/Admin/Pages/Dashboard.razor +++ b/TaxBaik.Web/Components/Admin/Pages/Dashboard.razor @@ -163,26 +163,30 @@ private string? errorMessage; private bool isLoading = true; - protected override async Task OnInitializedAsync() + protected override async Task OnAfterRenderAsync(bool firstRender) { - try + if (firstRender) { - // API 클라이언트 사용 (서비스 직접 호출 X) - var summaryTask = DashboardClient.GetSummaryAsync(); - var filingsTask = DashboardClient.GetUpcomingFilingsAsync(30); + try + { + // API 클라이언트 사용 (서비스 직접 호출 X) + var summaryTask = DashboardClient.GetSummaryAsync(); + var filingsTask = DashboardClient.GetUpcomingFilingsAsync(30); - await Task.WhenAll(summaryTask, filingsTask); - summary = await summaryTask; - upcomingFilings = (await filingsTask).ToList(); - } - catch (Exception ex) - { - errorMessage = "대시보드 데이터를 불러올 수 없습니다."; - Console.Error.WriteLine($"Dashboard error: {ex.Message}"); - } - finally - { - isLoading = false; + await Task.WhenAll(summaryTask, filingsTask); + summary = await summaryTask; + upcomingFilings = (await filingsTask).ToList(); + } + catch (Exception ex) + { + errorMessage = "대시보드 데이터를 불러올 수 없습니다."; + Console.Error.WriteLine($"Dashboard error: {ex.Message}"); + } + finally + { + isLoading = false; + StateHasChanged(); + } } } diff --git a/TaxBaik.Web/Components/Admin/Pages/RevenueTrackings.razor b/TaxBaik.Web/Components/Admin/Pages/RevenueTrackings.razor index 4665879..3929008 100644 --- a/TaxBaik.Web/Components/Admin/Pages/RevenueTrackings.razor +++ b/TaxBaik.Web/Components/Admin/Pages/RevenueTrackings.razor @@ -120,9 +120,13 @@ private bool isDialogOpen; private RevenueForm revenueForm = new(); - protected override async Task OnInitializedAsync() + protected override async Task OnAfterRenderAsync(bool firstRender) { - await LoadData(); + if (firstRender) + { + await LoadData(); + StateHasChanged(); + } } private async Task LoadData() diff --git a/TaxBaik.Web/Components/Admin/Pages/TaxFilingSchedules.razor b/TaxBaik.Web/Components/Admin/Pages/TaxFilingSchedules.razor index 7dfbc5c..2e53edd 100644 --- a/TaxBaik.Web/Components/Admin/Pages/TaxFilingSchedules.razor +++ b/TaxBaik.Web/Components/Admin/Pages/TaxFilingSchedules.razor @@ -148,7 +148,14 @@ private bool isDialogOpen; private TaxFilingScheduleForm scheduleForm = new(); - protected override async Task OnInitializedAsync() => await LoadData(); + protected override async Task OnAfterRenderAsync(bool firstRender) + { + if (firstRender) + { + await LoadData(); + StateHasChanged(); + } + } private async Task LoadData() { diff --git a/TaxBaik.Web/Components/Admin/Pages/TaxProfiles.razor b/TaxBaik.Web/Components/Admin/Pages/TaxProfiles.razor index 9b618c3..ee76076 100644 --- a/TaxBaik.Web/Components/Admin/Pages/TaxProfiles.razor +++ b/TaxBaik.Web/Components/Admin/Pages/TaxProfiles.razor @@ -116,9 +116,13 @@ else private TaxProfile? editingProfile; private TaxProfileForm profileForm = new(); - protected override async Task OnInitializedAsync() + protected override async Task OnAfterRenderAsync(bool firstRender) { - await LoadData(); + if (firstRender) + { + await LoadData(); + StateHasChanged(); + } } private async Task LoadData()