- клиент заходит на страницу
- Вызывается OnInitializedAsync()
- Появляется кружок загрузки, сигнализирующий о применении бизнес-логики.
- Применена бизнес-логика и заданы свойства.
- Свойство видимости установлено, а функция оставлена.
- компоненты отображаются с определенными свойствами и отображаются клиенту.
Я попробовал 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
Мобильная версия