c# - 更改站点主题时使用函数调用更改嵌套组件的主题
问题描述
我目前有一个 ThemeService 用于管理我网站的主题。
public class ThemeService
{
IJSRuntime _jsRuntime { get; set; }
private ThemeEnum _theme;
public async Task Initialize()
{
...
}
public async Task SetTheme(ThemeEnum theme)
{
...
}
}
除了嵌套的图形组件外,主题切换工作得很好。
要更改图形的颜色,我需要调用图形组件中存在的函数SetGraphColoring()
.
public partial class Graph
{
[Inject] ThemeService themeService { get; set; }
[Parameter] public string graphTheme { get; set; }
[Parameter] public string data{ get; set; }
protected override async Task OnInitializedAsync()
{
...
{Initialize graph}
}
public async Task SetGraphColoring()
{
await module.InvokeVoidAsync("ChangeColoring", GraphId, GraphTheme);
}
}
该图作为页面上的嵌套组件存在。我将主题传递给它的初始渲染,并且这个渲染正确,并且在主题更改后刷新页面时,正如预期的那样,它将正确重新渲染,因为图形被重新初始化。
<Graph data="data" graphType="line" graphTheme="@(themeService.currentTheme.ToString())" />
该图仅存在于一页上。
在更改图形类型时,对 OnParameterSetAsync() 使用覆盖会导致问题。
如何在更改网站主题的同时更改图表的主题?
解决方案
推荐阅读
- python - 如何在 Beautiful Soup 中深入多个级别(find_all 错误)
- c++ - IO 可以使用可变的吗?
- ios - navigationBarItems 中的 SwiftUI NavigationButton
- javascript - 使用 Jquery 构建的平滑滚动功能难以正常运行
- firebase - 在颤振应用程序中添加 Firebase 分析时出错
- c# - 在 MainPage.xaml.cs 中使用 Android 特定代码
- flutter - 退出App后如何防止视频播放器出现白屏?
- java - Java 二进制文件的版本控制
- firebase - 如何在 EmberFire 中查询子集合?
- php - 如何用特定的 url 元素替换脚本的一部分?