我有这个代码:
<div class="col-lg-12 control-section toast-default-section">
<SfToast ID="toast_default" @ref="ToastObj" Title="Error" Content="@a" </SfToast>
</div>
@code{
a = "Test";
StringBuilder b = new StringBuilder();
b.Append("Hello ");
if (b.ToString() != "")
{
a = a+ b;
StateHasChanged();
await ToastObj.ShowAsync();
}
}
当这个";ToastObj";打开,我需要点击2次才能刷新。我不知道为什么。
For example:
First Result: Test
Second Result: Test Hello
I need click two times to refresh.
对于未来,查看包括SFToast组件在内的所有代码会很有帮助。
但是,您的调用是正确的。要想刷新页面,你所要做的就是让代码点击";StateHasChanged(("作用我认为问题在于,您的代码位于任何函数之外。考虑@code{}的行为类似于具有一些差异的普通类文件。例如;构造函数";但创建时调用的第一个方法将是OnInialized((。我建议包装代码并确保所有变量都已初始化
@code{
protected override void OnInitialized()
{
var a = "Test";
StringBuilder b = new StringBuilder();
b.Append("Hello ");
if (b.ToString() != "")
{
a = a+ b;
StateHasChanged();
await ToastObj.ShowAsync();
}
}
}
尝试使用InvokeAsync(StateHasChanged(;