我的 Blazor 组件与此类似:
主剃须刀
@foreach (Vehicle vehicle in _vehicles)
{
if (vehicle.Visible)
{
<VehicleComponent Vehicle=@vehicle></VehicleComponent>
}
}
@code {
protected override void OnInitialized()
{
_vehicles = new List<Vehicles>();
// -> _vehicles being filled here
base.OnInitialized();
}
}
Run Code Online (Sandbox Code Playgroud)
VehicleComponent.razor
@if (Vehicle != null)
{
<img src="@(Vehicle.src)"/>
<div id="@(Vehicle.Id)" tabindex="@(Vehicle.tabindex)">
<h3>@(Vehicle.text)</h3>
</div>
}
@code {
[Parameter] public Vehicle Vehicle { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
问题是VehicleComponent
循环内的所有 s 都是在循环完成后渲染的。但我希望组件在渲染下一个列表项之前完全渲染。
我尝试StateHasChanged()
在 中的每个项目之后使用Main.razor
,但出现无限循环。有没有办法可以在循环中依次渲染每个组件(并更新 UI)?