在Fluxor中,每个存储都是一个单例,这意味着您不能直接创建多个存储实例。但是,您可以使用不同的功能模块为不同组件提供不同的状态管理。
例如,假设您有两个组件需要管理站点信息。要做到这一点,您可以创建另一个站点信息特定的特征模块(这里我们称其为SiteFeature),它将包含一个SiteState和一个Site存储。
SiteFeature类如下所示:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Fluxor;
namespace BlazorFluxorSample.Features.Sites
{
public class SiteFeature : Feature
{
public override string GetName() => "Sites";
protected override SiteState GetInitialState() =>
new SiteState(isLoading: true);
}
}
SiteState看起来像这样:
using System;
using System.Net.Http;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace BlazorFluxorSample.Features.Sites
{
public class SiteState
{
public SiteState(bool isLoading,
ICollection sites = null,
Site currentSite = null,
bool? isCreating = null,
bool? isEditing = null,
bool? isDeleting = null,
bool? isWarning = null,
bool? isSuccess = null,
string message = null,
Exception exception = null)
{
IsLoading = isLoading;
Sites = sites ?? new List();
CurrentSite = currentSite;
IsCreating = isCreating;
IsEditing = isEditing;
IsDeleting = isDeleting;
IsWarning = isWarning;
IsSuccess = isSuccess;
Message = message;
Exception = exception;
}
public bool IsLoading { get; }
public ICollection Sites { get; }
public Site CurrentSite { get; }
public bool? IsCreating { get; }
public bool? Is