无法在客户端 blazor 中覆盖 OnAfterRenderAsync

mko*_*mko 6 blazor blazor-client-side

在我的 Blazor 客户端应用程序中,我试图覆盖OnAfterRenderAsync使用

@code {
    protected override async Task OnAfterRenderAsync()
    {

    }
}
Run Code Online (Sandbox Code Playgroud)

我收到一个错误

没有合适的方法来覆盖!?

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

protected override async Task OnInitializedAsync()
{

}
Run Code Online (Sandbox Code Playgroud)

任何线索这里出了什么问题?

dan*_*era 12

在 .NET Core 3.0 Preview 9Upgrade an existing project 中引用ASP.NET Core 和 Blazor 更新

  • 用或替换OnAfterRender()OnAfterRenderAsync()实现。OnAfterRender(bool firstRender)OnAfterRenderAsync(bool firstRender)

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

Git hub 代码升级到预览版 9

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


Isa*_*aac 5

尝试这个

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

    }
}
Run Code Online (Sandbox Code Playgroud)

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

 protected override async Task OnInitializedAsync()
    {

    }
Run Code Online (Sandbox Code Playgroud)

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