【发布时间】:2021-04-06 00:43:23
【问题描述】:
我正在开发一个 Blazor 应用程序,在这个应用程序中,我需要存储用户选择项列表的状态。 当用户按下“保存更改”按钮时,我想将列表存储在状态中。
到目前为止,我已经编写了 Fluxor 文档中所写的四个强制性类:
服务状态:
public record ServiceState
{
public List<ServiceModel> SelectedService { get; init; }
}
服务功能
public override string GetName() => nameof(ServiceState);
protected override ServiceState GetInitialState()
{
return new ServiceState
{
SelectedService = new List<ServiceModel>()
};
}
选择服务操作:
public class SelectServiceAction
{
public List<ServiceModel> _serviceList;
public SelectServiceAction(List<ServiceModel> choosenServices)
{
_serviceList = choosenServices;
}
}
和 SelectServiceReducer:
public class SelectServiceReducer
{
[ReducerMethod]
public static ServiceState OnSelectService(ServiceState state, SelectServiceAction action)
{
return state with
{
SelectedService = action._serviceList
};
}
}
我尝试了很多东西,但似乎没有任何效果存储在状态中的列表总是空的 但有趣的是,在 SelectServiceAction 类中:
public SelectServiceAction(List<ServiceModel> choosenServices)
{
_serviceList = choosenServices;
}
如果我在最后一个 } _serviceList 中放置了一个断点,则正确地包含了我传递给调度程序的列表中包含的所有项目。似乎问题出在 ServiceState 本身,
你知道我做错了什么吗? 如果您需要我显示更多代码,我会发布它 提前谢谢你。
【问题讨论】:
标签: c# asp.net blazor-server-side state-management fluxor