mko
mko

Reputation: 7325

Unable to override OnAfterRenderAsync in client side blazor

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?

Upvotes: 10

Views: 11410

Answers (2)

enet
enet

Reputation: 45626

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

Upvotes: 6

dani herrera
dani herrera

Reputation: 51665

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.

Upvotes: 17

Related Questions