我正在探索.NET8的Blazor新特性,我遇到了一个问题,我的组件似乎呈现了两次.当我结合使用"流渲染"和"交互服务器渲染模式"时,出现了这个问题.
为了清楚起见,我简化了代码:
@attribute [StreamRendering]
@rendermode InteractiveServer
@if (data == null)
{
<p>Loading...</p>
}
else
{
<p>@data</p>
}
@code {
private string? data;
protected override async Task OnInitializedAsync()
{
await Task.Delay(1000);
data = "Hello World!";
}
}
在这段代码中,我希望"正在加载..."最初要显示的文本,然后在一段延迟后显示文本"Hello World!"应该取而代之.这是可行的,但一旦显示了data
,组件就会重新呈现,加载的文本也会再次显示.
我的问题是:
- 我是对的,第二次重发是因为建立了到服务器的电路连接?
- 有没有办法防止第二次倒闭?