Fluxor

De Banane Atomic
Aller à la navigationAller à la recherche

Links

Example

Store/ItemSearchUseCase/ItemSearchCase.cs
[FeatureState]
public class TransactionsSearchState
{
    public string SearchText { get; } = string.Empty;

    public TransactionsSearchState(string searchText)
    {
        SearchText = searchText;
    }

    // Required for creating initial state
    private TransactionsSearchState()
    { }
}
Store/ItemSearchUseCase/ItemSearchAction.cs
public class TransactionsSearchAction
{
    public string searchText { get; } = string.Empty;

    public TransactionsSearchAction(string searchText)
    {
        this.searchText = searchText;
    }
}
Store/ItemSearchUseCase/Reducers.cs
public class Reducers
{
    [ReducerMethod]
    public static ItemSearchState ReduceTransactionsSearchAction(ItemSearchState state, ItemSearchAction action)
        => new(action.searchText);
}
Pages/Items.razor.cs
[Inject]
private IState<ItemSearchState> ItemSearchState { get; set; }

[Inject]
public IDispatcher Dispatcher { get; set; }

// get the state
ItemSearchState.Value.SearchText

// update the state
Dispatcher.Dispatch(new ItemSearchAction(searchText));

Installation

Bash.svg
dotnet add package Fluxor.Blazor.Web
Program.cs
builder.Services
    .AddFluxor(options => options.ScanAssemblies(typeof(Program).Assembly));
// options.UseReduxDevTools();
App.razor
<Fluxor.Blazor.Web.StoreInitializer />