如何检查是否已将所有组件加载到 .net 核心 blazer 应用中?



假设我想知道我的所有组件何时加载,以便我可以执行 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"(以下链接中的示例(。

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

例如,每个组件都会向此服务发送通知,该通知可以告知它是否已加载。然后,主"正文"将在完成时收到通知(您必须在此处实现自己的逻辑(。

相关内容

  • 没有找到相关文章

最新更新