Я работаю с Blazor Projects .net 8.0, и мои компоненты кратко вспыхивают перед появлением. Я использовал новый шаблон веб -приложения Blazor.
Некоторая форма вспышки происходит независимо от того, что @rendermode InteractiveAuto, InteractiveWebassembly , или InteractiveServer ), который я использую, и присутствует ли атрибут [StreamRendering] . Расположение компонента между двумя Blazor Projects также не имеет никакого эффекта. Кроме того, компонент требуется вдвое больше времени для загрузки, из 2 -й секунды await task.delay (2000); моделируемая задержка до 4 секунд.
Если я удалю @rendermode полностью, мигание прекращается. Однако мне нужно использовать @rendermode interactiveauto , потому что я изменил компонент погоды, чтобы иметь интерактивный QuickGrid.
Какова причина и решение этой проблемы? Может ли это быть что -то связано с этим? В 37:06 он демонстрирует эквивалент @rendermode InteractiveWebassembly и смущает даже себя поведением.@page "/weather"
@using Microsoft.AspNetCore.Components.QuickGrid
@attribute [StreamRendering]
@rendermode InteractiveAuto
Weather
Weather
Render @(OperatingSystem.IsBrowser() ? "Wasm" : "Server")
This component demonstrates showing data.
@if (forecasts == null)
{
Loading...
}
else
{
}
@code {
private IQueryable? forecasts;
PaginationState paginationState = new PaginationState { ItemsPerPage = 5 };
protected override async Task OnInitializedAsync()
{
// Simulate asynchronous loading to demonstrate streaming rendering
await Task.Delay(2000);
var startDate = DateOnly.FromDateTime(DateTime.Now);
var summaries = new[] { "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching" };
forecasts = Enumerable.Range(1, 15).Select(index => new WeatherForecast
{
Date = startDate.AddDays(index),
TemperatureC = Random.Shared.Next(-20, 55),
Summary = summaries[Random.Shared.Next(summaries.Length)]
}).AsQueryable();
}
private class WeatherForecast
{
public DateOnly Date { get; set; }
public int TemperatureC { get; set; }
public string? Summary { get; set; }
public int TemperatureF => 32 + (int)(TemperatureC / 0.5556);
}
}
Подробнее здесь: https://stackoverflow.com/questions/777 ... or-project