Blazor правильно обновляет пользовательский интерфейс после вызова APIC#

Место общения программистов C#
Anonymous
Blazor правильно обновляет пользовательский интерфейс после вызова API

Сообщение Anonymous »

Этот код делает именно то, что я хочу:
  • Отображает сообщение (div) от робота, говорящее «думаю».
  • Ожидает, пока вызов API завершит обновление этого сообщения (div) и переходит к сообщению (div)
Похоже, что проверка кода не пройдет проверку хотя, несмотря на это, он делает именно то, что мне нужно.
Есть ли какой-нибудь лучший шаблон для достижения этой цели, показывающий div с «мышлением» до завершения вызова API.
private async Task SendMessage()
{
var messageHolder = userMessage;
Console.WriteLine($"User Message is: {userMessage}");

if (!string.IsNullOrWhiteSpace(messageHolder))
{
messages.Add(new ChatMessageInPage { User = "User", Message = messageHolder });
var msg = new ChatMessageInPage { User = "Robot 🤖", Message = "Thinking..." };
messages.Add(msg);
userMessage = string.Empty;
// THS IS THE ODD CODE
Task.Run( async () =>
{
msg.Message = await apiRobot.GetBotResponse(messageHolder);

InvokeAsync(() =>
{
NeedScrollBottom = true;
StateHasChanged();
});
}
);
NeedScrollBottom = true;
StateHasChanged();
}
}


Подробнее здесь: https://stackoverflow.com/questions/787 ... n-api-call

Вернуться в «C#»