Initialization 如何在Blazor webassembly应用程序启动时初始化变量?
在UWP中,我会在启动时以编程方式初始化显示变量,以便初始显示是我想要的,例如,基于年中某一天的值。在我的Blazor webassembly应用程序中,我无法在何处复制它。我当前设置了默认值,并要求用户单击一个按钮,该按钮计算并更新我要显示的值,然后继续Initialization 如何在Blazor webassembly应用程序启动时初始化变量?,initialization,blazor,startup,webassembly,Initialization,Blazor,Startup,Webassembly,在UWP中,我会在启动时以编程方式初始化显示变量,以便初始显示是我想要的,例如,基于年中某一天的值。在我的Blazor webassembly应用程序中,我无法在何处复制它。我当前设置了默认值,并要求用户单击一个按钮,该按钮计算并更新我要显示的值,然后继续 我本以为有一个标准的、简单的方法可以做到这一点,但考虑到Blazor片段是如何动态构建的,以便呈现为网页,也许不是?谢谢 这不是Blazor特有的,但是在任何类中,您都可以在组件的构造函数中创建代码/ 这里我有一个聊天组件,我把它分解成 Ch
我本以为有一个标准的、简单的方法可以做到这一点,但考虑到Blazor片段是如何动态构建的,以便呈现为网页,也许不是?谢谢 这不是Blazor特有的,但是在任何类中,您都可以在组件的构造函数中创建代码/ 这里我有一个聊天组件,我把它分解成
Chat.razor
Chat.razor.cs
您可以通过添加与组件同名的类来创建chat.razor.cs,然后添加单词partial使其成为partial类:
partial class Chat : IBlazorComponent, IBlazorComponentParent, IDisposable
注意:这些界面仅适用于我的应用程序,我只是用部分代码显示该行。
你真的需要它吗:
partial class Chat
然后在我的构造函数中创建:
public Chat()
{
// Perform initializations for this object
Init();
}
我只是调用一个方法,您不必:
我的初始化方法:
public void Init()
{
// do your initializations
}
也可以使用OnInitializedAsync
protected override async Task OnInitializedAsync()
{
// load the Categories (example)
this.Categories = await HelpCategoryService.GetHelpCategoryList()
}
或者这里有另一个我有时使用的方法:OnAfterRender
protected override void OnAfterRender(bool firstRender)
{
if (firstRender)
{
...
}
}
相关文件如下:
也许这会给你一些想法。不确定标准,每个用例都是不同的
注意:我从未使用Blazor Web Assembly,只使用过服务器端Blazor,所以不确定WASM的具体功能,但我知道构造函数可以在任何C#类中工作。我使用了OnInitializedAsync(),除了等待警告之外,我会发现它可以按我所希望的方式工作。非常感谢。