今天测试一段代码如下:点击测试后,调用远程API,动态更新valuedata的值。
<h1 @onclick="Test">测试</h1>
……
<span>@valuedata</span>
@code{
public string valuedata { get; set; }
private async void Test()
{
string value = await APITest();
valuedata = "ok:" + value;
}
}
但是结果是,第一次点击时无法更新,总是再第二次点击时才达到预期。
问题原因:异步处理数据,数据未及时更新。
解决办法:修改异步处理函数,在末尾增加StateHasChanged();
private async void Test()
{
string value = await APITest();
valuedata = "ok:" + value;
StateHasChanged();
}