【问题标题】:Blazor .NET 6 Component EventHandler Parameter Dont work in parent handlerBlazor .NET 6 组件事件处理程序参数在父处理程序中不起作用
【发布时间】:2021-11-23 08:24:57
【问题描述】:

我使用 .NET 6 和 Visual Studio 2022 我有一个带有 EventHandler 的组件,如下所示

[Parameter] public EventCallback<DIMCustomer> OnSelectedCustomer { get; set; }

并在此组件中的方法中调用此事件,如下所示

async Task Select(DIMCustomer customer)
        {
            db.Entry(customer).State = EntityState.Detached;
            await OnSelectedCustomer.InvokeAsync(customer);
            await CloseModal();
        }

在 Parent 我这样使用这个组件:

<CustomerSelectorModalComponent @ref=DOMCustomerSelector OnSelectedCustomer=OnCustSelected />

还有这个方法:

void OnCustSelected(DIMCustomer customer)
        {
            if (CustomerModalMode == customerMode.Owner)
            {

                dIMCheque.OwnerCustomer = customer;
                dIMCheque.ShOwner = customer.ID;
            }
            else if (CustomerModalMode == customerMode.Benefit)
            {
                dIMCheque.BeneficiaryCustomer = customer;
                dIMCheque.ShBeneficiary = customer.ID;
            }
        }

但是这个方法不再触发了!???

这张图片显示了为触发添加的方法处理程序,但为什么不触发???

组件“CustomerSelectorModalComponent”在另一个组件中工作得很好,但在这个父组件中不起作用...... 为什么????

我发现了问题但无法解决它们

我希望我的组件和事件处理程序如下图所示

但 Blazor 事件处理程序如下所示

我该如何解决... 两个组件客户在存款组件中坚持一个事件处理程序

这是我在存款组件中的剃须刀

<CustomerComponent @ref=DOMCustomerComponent OnSelectedCustomer=OnCustomerSelected></CustomerComponent>

这是我在模态组件中的剃刀

<DepositComponent @ref=DOMDeposit OnDepositSelected=OnSelectDeposit />
<CustomerComponent @ref=DOMCustomer OnSelectedCustomer=OnCustSelected />

【问题讨论】:

    标签: c# asp.net-core blazor blazor-server-side


    【解决方案1】:

    我的问题是元素 ID ... 组件 html 元素具有 ID 和一些通过 ID 元素与 JavaScript 一起工作... 我有两个相同的组件导致重复的 Id 元素并中断工作...... 我用 GUID 生成动态 ID 并解决了问题...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-22
      • 1970-01-01
      • 2022-12-06
      • 1970-01-01
      • 1970-01-01
      • 2012-01-26
      相关资源
      最近更新 更多