在我的Blazor客户端应用中,我试图使用
覆盖OnAfterRenderAsync
@code {
protected override async Task OnAfterRenderAsync()
{
}
}
我收到错误
没有合适的方法可以覆盖!?
另一方面,此覆盖效果很好:
protected override async Task OnInitializedAsync()
{
}
任何线索,这是怎么了?
答案 0 :(得分:4)
引用ASP.NET Core and Blazor updates in .NET Core 3.0 Preview 9的升级现有项目:
- 用
OnAfterRender()
或OnAfterRenderAsync()
替换OnAfterRender(bool firstRender)
和OnAfterRenderAsync(bool firstRender)
的实现。
由于NET Core 3.0预览版9 OnAfterRender
收到一个布尔参数,以使方法知道这是否是第一个渲染。避免自己控制它非常有用:
有关如何将旧代码替换为新代码,红色旧代码,绿色新代码的示例。
答案 1 :(得分:3)
尝试
@code {
protected override async Task OnAfterRenderAsync(bool firstRender)
{
}
}
请注意,OnAfterRenderAsync和OnAfterRender都具有布尔参数,您可以调用firstRender
protected override async Task OnInitializedAsync()
{
}
实际上,应该没有问题,因为这是OnInitializedAsync的正确方法签名