gpt4 book ai didi

c# - 如何检查所有组件是否已加载到 .net core blazor 应用程序中?

转载 作者:行者123 更新时间:2023-12-04 13:38:48 25 4
gpt4 key购买 nike

假设我想知道我的所有组件何时加载,以便我可以执行 X。

在我的 MainLayout.razor我有例如这个

@inject MyService;

@Body

bool AllComponentsAreLoaded { get; set; }

protected override async Task OnInitializedAsync()
{
AllComponentsAreLoaded = false;
}

protected override async Task OnAfterRenderAsync(bool firstrender)
{
AllComponentsAreLoaded = true;
if (AllComponentsAreLoaded)
{
// Nice I can start X
}
}

这段代码可以工作,但我的问题是 @Body 中有组件没有加载。 OnAfterRenderAsync会触发,但它会在所有组件完成渲染之前触发。

我如何知道所有组件都已完成渲染?

最佳答案

为此,您可以使用“NotifierService”,将其注入(inject)到每个组件可以调用的启动中(以下链接中的示例)。

https://docs.microsoft.com/en-us/aspnet/core/blazor/components?view=aspnetcore-3.1

例如,每个组件都会向这个服务发送一个通知,让它知道它是否被加载。主要的“Body”将在完成时收到通知(您必须在此处实现您自己的逻辑)。

关于c# - 如何检查所有组件是否已加载到 .net core blazor 应用程序中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60159285/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com