- клиент заходит на страницу
- Вызывается OnInitializedAsync()
- появляется кружок загрузки, сигнализирующий о применении бизнес-логики
- применяется бизнес-логика и устанавливаются свойства
- Свойство видимости установлено, а функция оставлена
- компоненты отображаются с определенными свойствами и отображаются customer
Я попробовал Task.Delay() и StateHasChanged в конце OnInitializedAsync(). Я также попробовал использовать OnAfterRenderAsync() и установить там свойство с вызовом StateHasChanged, но безрезультатно.
Единственный способ заставить это работать — удалить проверку @if(isVisible) вверху моей страницы бритвы. В этом случае применяется свойство отключено, однако клиент увидит компоненты до того, как они будут «готовы», и даже успеет взаимодействовать с ними, поскольку происходит огромная задержка. Это выглядит глупо и непрофессионально. Не могли бы вы объяснить мне, каким будет общий или лучший подход к этой проблеме?
Вот примерный псевдокод:
@if(isVisible)
{
}
@code
{
private ComboBox MyComboBox {get;set;}
private bool isVisible = false;
protected override OnInitializedAsync()
{
"Do Some Stuff"
this.MyComboBox.Enabled = false;
this.isVisible = true;
StateHasChanged();
}
}
Подробнее здесь: https://stackoverflow.com/questions/791 ... gic-applie
Мобильная версия