我试图找出为什么我无法在 Blazor 中获取 OnAfterRenderAsync 方法。
在尝试了多种选项并查看 Microsoft 文档后,我似乎找不到解决方案,我确信我错过了一些东西,但我无法弄清楚问题是什么。
在下面的代码中,OnInit 函数被调用,但渲染函数没有被调用。
<h1>OnInit & OnInitAsync Demo</h1>
@foreach (var item in EventType)
{
@item
<hr />
}
@code{
List<string> EventType = new List<string>();
protected override void OnInitialized()
{
EventType.Add("Initilaized");
}
protected override void OnAfterRender(bool firstRender)
{
EventType.Add("OnAfterRender is called");
}
protected override async Task OnAfterRenderAsync(bool firstRender)
{
EventType.Add("OnAfterRenderAsync is called");
await Task.Delay(1000);
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的 .csproj 文件
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
</PropertyGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)
这是我的 _Host.cshtml
<app>
<component type="typeof(App)" render-mode="ServerPrerendered" />
</app>
Run Code Online (Sandbox Code Playgroud)
我也尝试过这种方式
@(await Html.RenderComponentAsync<App>(RenderMode.ServerPrerendered))
Run Code Online (Sandbox Code Playgroud)
为什么事件没有被触发?
小智 4
尝试将以下行添加到 _Host.cshtml 中正文(而不是头部)的末尾:
<script src="_framework/blazor.server.js"></script>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7314 次 |
最近记录: |