Skip to content

Event Callbacks

Event callbacks allow components to communicate events back to their parent components, enabling two-way communication.

Basic Event Callbacks

razor
@* ChildComponent.razor *@
<button @onclick="OnClick">Click Me</button>

@code {
    [Parameter]
    public EventCallback OnClick { get; set; }
}

Callbacks with Parameters

razor
@* DataComponent.razor *@
<button @onclick="@(() => OnValueChanged.InvokeAsync(value))">
    Update Value
</button>

@code {
    [Parameter]
    public EventCallback<string> OnValueChanged { get; set; }
}

Using Event Callbacks

In Parent Component

razor
<ChildComponent OnClick="HandleClick" />
<DataComponent OnValueChanged="HandleValueChanged" />

@code {
    private void HandleClick()
    {
        // Handle the click event
    }

    private void HandleValueChanged(string newValue)
    {
        // Handle the value change
    }
}

Best Practices

  1. Use EventCallback instead of Action/Func
  2. Avoid synchronous callbacks
  3. Handle null callbacks safely
  4. Use meaningful callback names
  5. Document expected callback behavior