Лучшая практика передачи объекта в компонент blazorC#

Место общения программистов C#
Ответить
Anonymous
 Лучшая практика передачи объекта в компонент blazor

Сообщение Anonymous »

Мне нужен совет или идея, как это можно улучшить: как правильно (или лучше) передать большой объект?
У меня есть страница Tracker.razor. Эта страница предназначена только для получения данных из базы данных.
У меня также есть Map.razor, который является компонентом, с помощью которого я вызываю карты Google.
Как я могу вызвать компонент из Tracker.razor?

Код: Выделить всё

Tracker.razor.cs
:

Код: Выделить всё

public partial class Tracker.razor.cs
{
private MyBookingData bookingData;
private MyBookingData data;

protected override async Task OnAfterRenderAsync(bool firstRender)
{
if (firstRender)   // This is where I grab the MyBookingData bookingData
}

// This function being called for every 30 sec
private GetBookingData()
{
// Grab MyBookingData bookingData JobStatus
// if success then assign this to data
// data = bookingData
// Note i did this because some reason bookingData changes wont
// get recognize by blazor.
}
}
Вот как я установил Map.razor.cs:

Код: Выделить всё

public partial class Map
{
[Parameter] public MyBookingObject ValueData{ get; set; }
[Parameter] public EventCallback GoogleRouteResult { get; set; }

protected override async Task OnParametersSetAsync()
{
try
{
if (ValueData is null) return;
// My Logic to check if there's changes from ValueData to tempData
// if yes then assign tempData = ValueData
// If not then return;
// My entire Logic
}
}
}
Это работает так, как задумано, но я просто хочу знать, есть ли лучший способ сделать это?
Потому что мне нужно только обновлять данные/передавать данные на карту каждые 30 секунд, а если я использую OnParameterSetAsync, он продолжает вызывать каждый раз, поэтому почему у меня есть логика для обнаружения изменений между двумя одними и теми же объектами.
Я тоже рассмотрите возможность создания события Action, но я не уверен, что это не вызовет проблем в будущем.
Любая помощь будет оценена по достоинству. Заранее спасибо

Подробнее здесь: https://stackoverflow.com/questions/798 ... ent-blazor
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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