Я создал Библиотеку Razor, в которой хранятся все части пользовательского интерфейса и дизайн. В этой библиотеке, созданной с использованием .NET 8, у меня есть, например, компонент для изменения темы на темный режим или наоборот. Я поместил этот компонент в другой компонент под названием TopNavBar (красная стрелка показывает переключение от светлого к темному).
Переключатель вызывает JSInterop
@inject IJSRuntime jsRuntime @код { /// /// Темная тема активирована? /// [Параметр] public bool IsDarkTheme { get; набор; } = ложь; защищенная асинхронная задача OnLightClick (MouseEventArgs args) { await jsRuntime.InvokeVoidAsync("switchToLight"); IsDarkTheme = ложь; } защищенная асинхронная задача OnDarkClick (MouseEventArgs args) { await jsRuntime.InvokeVoidAsync("switchToDark"); IsDarkTheme = правда; } } и результат на странице

MainLayout.razor такой
@inherits LayoutComponentBase @inject AuthenticationStateProvider AuthenticationStateProvider @SearchContent В проекте Blazor (с сервером и клиентом) на основе .NET 8 я добавил библиотеку и в MainLayout.razor поместил TopNavbar. Во-первых, приложению требуется много времени, чтобы ответить пользователю, возможно, потому, что ему необходимо прочитать некоторые файлы JavaScript. Во-вторых, переключатель не работает, при нажатии ничего не происходит.
Я пытался добавить в TopNavBar rendermode, используя то, что мне показывает Visual Studio (хотя это неправильно):
или правильный (я думаю):
но в обоих случаях я получаю эту ошибку:
Ошибка CS0103. Имя InteractiveServer не существует в текущем контексте

Я смотрел это видео, и парень сказал, что я могу добавить @rendermode к каждому компоненту. Что я могу сделать?