You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Blazor技术问题:如何判断回调函数参数是否已传入?

在Blazor中判断EventCallback是否被父组件传入的方法

你可以直接通过EventCallback的HasDelegate属性来判断是否有父组件传入了回调函数,无需额外传递布尔值。

子组件实现代码

@* 根据是否传入回调显示不同内容 *@
@if (Event.HasDelegate)
{
    <button @onclick="TriggerEvent">触发父组件回调</button>
}
else
{
    <span>未绑定回调逻辑</span>
}

@code {
    // 遵循C#命名规范,参数名首字母大写
    [Parameter]
    public EventCallback Event { get; set; }

    private async Task TriggerEvent()
    {
        await Event.InvokeAsync();
    }
}

父组件使用示例

@* 传入回调的场景 *@
<SomeTemplate Event="@ThisEvent"/>

@* 不传入回调的场景 *@
<SomeTemplate/>

@code{
    private async Task ThisEvent()
    {
        // 自定义回调逻辑
    } 
}

EventCallback内部维护了一个委托实例,HasDelegate属性会直接返回该委托是否被赋值,刚好满足判断父组件是否传入回调的需求。

内容的提问来源于stack exchange,提问作者Nope Never

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 15:41:48