@if (_loading)
{
....
}
else
{
....
}
....
@code
{
private bool _loading
...
private void Search()
{
_loading = false;
StateHasChanged();
Mails.Clear();
Licenses.Clear();
Callings.Clear();
Supports.Clear();
Leads.Clear();
search();
_loading = true;
StateHasChanged();
}
DOM在运行时不会改变。只有当您两次更改_loading的值时,它才会改变,但如果您仅更改一次,则可以正常工作。但是,我确实需要这样做两次。因此,我制作了一个进度条。如何修复它?
await
一些东西 - 通常只需要await Task.Delay(1)
或者await Task.Yield()
- 来让出线程并允许渲染器处理来自StateHasChanged()的请求。 - undefinedsearch
是做什么的?为什么它不是异步的?任何可能会阻塞的Blazor调用都应该是异步的,比如调用远程服务。这意���着search()
很可能是有意地阻塞了一个异步操作。 - undefinedThread.Sleep
会完全冻结整个标签,没有任何好处。 - undefined