Невозможно переопределить OnAfterRenderAsync в блейзоре на стороне клиента - PullRequest
1 голос
/ 07 ноября 2019

В моем клиентском приложении Blazor я пытаюсь переопределить OnAfterRenderAsync, используя

@code {
    protected override async Task OnAfterRenderAsync()
    {

    }
}

Я получаю ошибку

нет подходящих методов для переопределения!?

С другой стороны, это переопределение работает просто отлично:

protected override async Task OnInitializedAsync()
{

}

Любые подсказки, что здесь не так?

Ответы [ 2 ]

4 голосов
/ 07 ноября 2019

Цитирование Обновления ASP.NET Core и Blazor в .NET Core 3.0 Preview 9 Обновление существующего проекта :

  • ЗаменитьOnAfterRender() и OnAfterRenderAsync() реализации с OnAfterRender(bool firstRender) или OnAfterRenderAsync(bool firstRender).

Начиная с NET Core 3.0 Preview 9 OnAfterRender получает логический параметр, чтобы сообщить методу, является ли этоПервый рендер. Очень полезно избегать управления им самостоятельно:

Git hub code upgrading to preview 9

Пример того, как заменить старый код на новый, красный старый код, зеленый новыйодин.

3 голосов
/ 07 ноября 2019

попробуйте

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

    }
}

Обратите внимание, что как OnAfterRenderAsync, так и OnAfterRender имеют параметр boolen, который вы можете вызвать firstRender

 protected override async Task OnInitializedAsync()
    {

    }

Действительно, это должно работать без проблем, так как это правильноПодпись метода OnInitializedAsync

...