无法在客户端 blazor 中覆盖 OnAfterRenderAsync

Unable to override OnAfterRenderAsync in client side blazor

在我的 Blazor 客户端应用程序中,我尝试使用

覆盖 OnAfterRenderAsync
@code {
    protected override async Task OnAfterRenderAsync()
    {

    }
}

我收到一个错误

no suitable methods to override!?

另一方面,这个覆盖工作得很好:

protected override async Task OnInitializedAsync()
{

}

有什么线索吗?

试试这个

@code {
    protected override async Task OnAfterRenderAsync(bool firstRender)
    {

    }
}

请注意,OnAfterRenderAsync 和 OnAfterRender 都有一个布尔参数,您可以调用 firstRender

 protected override async Task OnInitializedAsync()
    {

    }

的确,这应该没有问题,因为这是 OnInitializedAsync 的正确方法签名

引用ASP.NET Core and Blazor updates in .NET Core 3.0 Preview 9升级现有项目:

  • Replace OnAfterRender() and OnAfterRenderAsync() implementations with OnAfterRender(bool firstRender) or OnAfterRenderAsync(bool firstRender).

自 NET Core 3.0 预览版 9 OnAfterRender 接收一个布尔参数,让方法知道这是否是第一次渲染。非常有用,避免自己控制它:

关于如何将旧代码替换为新代码的示例,红色旧代码,绿色新代码。