Blazor webassembly,国家管理.刷新子组件



我正在从列表中选择项目,并显示它们的不同内容。它使用以下代码正常工作:

public class ItemState
{
public Item CurrentItem { get; set; }
public event Action OnItemSelected;
public void SetItemValue(Item item)
{
CurrentItem = item;
NotifyStateChanged();
}
private void NotifyStateChanged() => OnItemSelected?.Invoke();
}
protected override void OnInitialized()
{
ItemState.OnItemSelected += StateHasChanged;
}

在Item组件中,我使用其他组件并将Item本身作为参数传递,如:<ItemHistory ItemModel="@Item"/>但是,当选择不同的项目时,ItemHIstory组件不会刷新。始终显示第一个选定项目的历史记录。

问题出在哪里?

答案是使用StateContainer,这样所有组件都可以访问属性。https://learn.microsoft.com/en-us/aspnet/core/blazor/state-management?view=aspnetcore-5.0&枢轴=腹板组件

最新更新