6
votes

In my Blazor client-side app, I am trying to override OnAfterRenderAsync using

@code {
    protected override async Task OnAfterRenderAsync()
    {

    }
}

I get an error

no suitable methods to override!?

On the other hand this override works just fine:

protected override async Task OnInitializedAsync()
{

}

Any clues what is wrong here?

2

2 Answers

13
votes

Quoting ASP.NET Core and Blazor updates in .NET Core 3.0 Preview 9's Upgrade an existing project:

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

Since NET Core 3.0 Preview 9 OnAfterRender receives a boolean parameter to let method know if this is the first render. Very useful to avoid controlling it by yourself:

Git hub code upgrading to preview 9

Sample about how to replace old code to new one, red old code, green new one.

4
votes

try this

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

    }
}

Note that both OnAfterRenderAsync and OnAfterRender has a boolen parameter you may call firstRender

 protected override async Task OnInitializedAsync()
    {

    }

Indeed, that should work with no issues as this is the correct method signature of OnInitializedAsync