Study
Blazor

EventCallback: Komunikasi Anak ke Induk

Penjelasan

EventCallback adalah tipe khusus Blazor untuk membuat Parameter yang bisa dipanggil sebagai "event" dari component anak — setara @Output/EventEmitter Angular atau emit Vue. Dideklarasikan sebagai [Parameter] bertipe EventCallback atau EventCallback<T> (kalau perlu mengirim data), dipicu lewat InvokeAsync().

Contoh Konsep

@* TombolSuka.razor *@
<button @onclick="HandleKlik">Suka</button>

@code {
    [Parameter]
    public EventCallback<DateTime> OnDisukai { get; set; }

    private async Task HandleKlik()
    {
        await OnDisukai.InvokeAsync(DateTime.Now);
    }
}

@* Dipakai di induk: *@
@* <TombolSuka OnDisukai="HandleDisukai" /> *@
@* @code { private void HandleDisukai(DateTime waktu) { ... } } *@

Praktikum

Buat component KartuProduk.razor dengan [Parameter] Nama (string) dan EventCallback OnDitambahkan yang dipicu saat tombol "Tambah ke Keranjang" diklik. Tulis contoh pemakaiannya di component induk dengan Nama dan OnDitambahkan.

Editor Latihan

Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.

Tips

InvokeAsync() SELALU dipanggil dengan await, bahkan kalau handler-nya sendiri tidak melakukan operasi async lain — ini WAJIB karena Blazor perlu menunggu semua kemungkinan pekerjaan async di sisi induk (mis. fetch data) selesai sebelum merender ulang UI.