我在剃须刀服务器组件页面上有一个类似下面的按钮. 这样做的目的是,当按钮被单击时,该按钮将处于禁用模式,直到任务完成.这可以在其中一个页面上工作,但我无法让它在同一应用程序的其他页面上工作.该按钮确实会触发DoSearch()函数,并在完成时刷新内容,但它不会在中途self 更新.你知道为什么请这样吗?
<button type="button" class="btn btn-primary" @onclick="DoSearch" disabled="@SearchDisabled">@SearchBtnName</button>
protected bool SearchDisabled { get; set; } = false;
protected string SearchBtnName { get; set; } = "Search";
protected async Task DoSearch()
{
SearchDisabled = true;
SearchBtnName = "Searching ...";
List<string> log = new();
try
{
//Do some work which takes a few seconds ....
}
finally
{
SearchDisabled = false;
SearchBtnName = "Search";
}
}
我try 更改我编写onClick的方式,如下所示: @onClick="@(async()=>;await DoSearch())"
我try 调用StateHasChanged()并等待InvokeAsync(StateHasChanged); 我也试着看看那个页面还有什么不同之处,但我想不出来.