6

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

@code {
    protected override async Task OnAfterRenderAsync()
    {

    }
}

我收到一个错误

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

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

protected override async Task OnInitializedAsync()
{

}

任何线索这里有什么问题?

4

2 回答 2

13

在 .NET Core 3.0 Preview 9的升级现有项目中引用ASP.NET Core 和 Blazor 更新

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

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

Git hub 代码升级到预览版 9

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

于 2019-11-07T18:48:02.443 回答
4

试试这个

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

    }
}

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

 protected override async Task OnInitializedAsync()
    {

    }

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

于 2019-11-07T18:27:12.357 回答