Действия, которые я выполнил для воспроизведения:
Я создал новый проект Blazor WebAssembly.
Установил Fluxor с помощью NuGet.
Настройте состояние, действия и редукторы следующим образом:
CounterState.cs:
Код: Выделить всё
public class CounterState
{
public int Count { get; }
public CounterState(int count)
{
Count = count;
}
}
Код: Выделить всё
public class IncrementCounterAction { }
Код: Выделить всё
using Fluxor;
public static class CounterReducers
{
[ReducerMethod]
public static CounterState ReduceIncrementCounterAction(CounterState state, IncrementCounterAction action) =>
new CounterState(state.Count + 1);
}
Код: Выделить всё
using BlazorApp1;
using Fluxor;
using Microsoft.AspNetCore.Components.Web;
using Microsoft.AspNetCore.Components.WebAssembly.Hosting;
var builder = WebAssemblyHostBuilder.CreateDefault(args);
builder.RootComponents.Add("#app");
builder.RootComponents.Add("head::after");
builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });
// Configure Fluxor
builder.Services.AddFluxor(options => options
.ScanAssemblies(typeof(Program).Assembly)
.UseReduxDevTools());
await builder.Build().RunAsync();
Код: Выделить всё
@page "/counter"
@using Fluxor
@inject IState CounterState
@inject IDispatcher Dispatcher
Counter
Current count: @CounterState.Value.Count
Click me
@code {
private void IncrementCount() => Dispatcher.Dispatch(new IncrementCounterAction());
}
Код: Выделить всё
@using Fluxor
@inject IState CounterState
BlazorApp1
Home
Counter (@CounterState.Value.Count)
Fetch data
@code {
private bool collapseNavMenu = true;
private string? NavMenuCssClass => collapseNavMenu ? "collapse" : null;
private void ToggleNavMenu()
{
collapseNavMenu = !collapseNavMenu;
}
}
Когда я запускаю приложение, я получаю следующую ошибку: Компонент рендеринга необработанных исключений: невозможно разрешить службу для типа «Fluxor.IFeature» при попытке активации ' Fluxor.State'.
Что я пробовал:
Убедиться, что все классы являются общедоступными.
Очистка и пересборка решения.
Проверка правильности настройки Fluxor в Program.cs.
Среда:
.NET 6.0
Visual Studio 2022
Blazor WebAssembly
Любая помощь или предложения будут очень признательны!
Подробнее здесь: https://stackoverflow.com/questions/785 ... blazor-web
Мобильная версия