人们会认为这是一项简单的任务。但是,如何在组件加载时调用服务方法而不触发两次呢?
当前-
protected override async Task OnInitializedAsync()
{
await Initialize();
}
private async Task Initialize()
{
Video = await _VideoService.GetAsync(Id);
}
现在,它被调用了两次,对于相同的信息,两次访问数据库似乎不是一个好主意。
我试过在下面这样做,但每次渲染之前都会出现错误。
protected override async Task OnAfterRenderAsync(bool firstRender)
{
if(firstRender)
{
await Initialize();
}
}
OnInitializedAsync
初始化组件的生命周期方法执行两次:
- 静态预呈现组件时
- 在建立服务器连接之后
这是经过设计的-检查预提交后的状态重新连接和本文的其他部分,以找出在您的情况下加载数据的安全方式。可能是SetParametersAsync
或OnParametersSetAsync