我有一个带有 EventCallBack 参数的 blazor 组件,它利用允许多个参数的新结构格式
[Parameter] public EventCallback<(EmployeeShiftDay, DateTime, DateTime)> NewDayScrolledIntoView { get; set; }
eventcallback 通常在 child 中被调用await NewDayScrolledIntoView.InvokeAsync(p1, p2, p3);
在我的主机页面中,我有相应的方法来处理调用private void NewDayInView(EmployeeShiftDay dayInView, DateTime weekStart, DateTime weekEnd)
{
...
}
如何在主机组件中为此 EventCallBack 添加标记 - 我当然需要 3 个参数,而不仅仅是一个<ShiftCardScroller NewDayScrolledIntoView="@((args) => NewDayInView(args))" ></ShiftCardScroller>
最佳答案
您正在调用它解构:
await NewDayScrolledIntoView.InvokeAsync((p1, p2, p3));
当接收到事件时,解构它然后:<ShiftCardScroller NewDayScrolledIntoView="@((args)=> NewDayInView(args.Item1,args.Item2,args.Item3))" />
关于带有多个参数的 Blazor EventCallback - 如何响应父主机控件中的事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65184334/