【发布时间】:2020-12-29 22:56:34
【问题描述】:
以下代码 sn-p 可以说明在服务器端呈现的 Blazor 应用程序中存在的问题:
App.Client/Pages/Test.razor
@page "/test"
<p>@text</p>
@code
{
private string text;
protected override async Task OnInitializedAsync()
{
await Task.Delay(1000); // wait 1000 milliseconds
text = "foo";
}
}
当组件第一次在服务器上初始化时,text 变量被设置为 foo 并且包含该字符串的 HTML 文档被发送到客户端。但是,客户端 Blazor 应用不知道服务器分配给变量的值,该值再次变为 null。 OnInitializedAsync 在客户端再次调用,text 被设置回 foo,但仅在一秒钟后屏幕上没有任何内容 - 服务器端渲染旨在避免这种情况首先。
您知道发送已填充数据的组件的任何方法吗?
【问题讨论】:
标签: asp.net-core blazor-webassembly