Невозможно разрешить службу для типа Fluxor.IFeature» в Blazor WebAssemblyC#

Место общения программистов C#
Ответить
Anonymous
 Невозможно разрешить службу для типа Fluxor.IFeature» в Blazor WebAssembly

Сообщение Anonymous »

Основная цель проекта — передать состояние счетчика кнопке на экране и в навигационном меню с помощью скобок, например: Counter(2)
Действия, которые я выполнил для воспроизведения:
Я создал новый проект Blazor WebAssembly.
Установил Fluxor с помощью NuGet.
Настройте состояние, действия и редукторы следующим образом:
CounterState.cs:

Код: Выделить всё

public class CounterState
{
public int Count { get; }

public CounterState(int count)
{
Count = count;
}
}

IncrementCounterAction.cs:

Код: Выделить всё

public class IncrementCounterAction { }

CounterReducers.cs:

Код: Выделить всё

using Fluxor;

public static class CounterReducers
{
[ReducerMethod]
public static CounterState ReduceIncrementCounterAction(CounterState state, IncrementCounterAction action) =>
new CounterState(state.Count + 1);
}

Настроил Fluxor в Program.cs:

Код: Выделить всё

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();

Обновлен Counter.razor для использования Fluxor:

Код: Выделить всё

@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());
}

Обновлен NavMenu.razor, чтобы отображать счетчик:

Код: Выделить всё

@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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»