Blazor服务器端-子函数中更改的值没有更新UI



所以我在这里做的是,我的子组件(RMSBaseComponent.rarzor(中有一个进度条,它被条件变量"IsLoading"包围

<div style="padding:20px">
@* Page Title *@
<h3>@PageTitle</h3>
<MatDivider></MatDivider>
@* Loader *@
@if (IsLoading)
{
<MatProgressBar Indeterminate="true"></MatProgressBar>
}
</div>

我正在制作这个家长中的孩子(AddNewCity.rarzor(作为

<RMSBaseComponent PageTitle="Add New City" @ref="BaseComponent">
</RMSBaseComponent>

在这里,我在"BaseComponent"变量中获得了子级的引用,但当我从父组件类(AddNewCity.cs(更改"IsLoading"的值时,它不会更新UI,也不会显示"MatProgressBar"UI。我正在将值更改为以下

public partial class AddNewCity
{
private RMSBaseComponent BaseComponent { get; set; }
protected override void OnAfterRender(bool firstRender)
{
base.OnAfterRender(firstRender);
Thread.Sleep(3000);
BaseComponent.IsLoading = true;
}
}

任何帮助都会得到通知。

谢谢

您应该在Thread.Sleep()之后调用StateHasChanged()

public partial class AddNewCity
{
private RMSBaseComponent BaseComponent { get; set; }
protected override void OnAfterRender(bool firstRender)
{
base.OnAfterRender(firstRender);
Thread.Sleep(3000);
BaseComponent.IsLoading = true;
StateHasChanged();
}
}

相关内容

  • 没有找到相关文章

最新更新