【问题标题】:Getting events from component rendered with RenderComponentAsync从使用 RenderComponentAsync 渲染的组件中获取事件
【发布时间】:2019-11-24 21:56:21
【问题描述】:

目前我正在构建一个包含 blazor 的 ASP.NET 应用程序。我可以使用包含的 Html.RenderComponentAsync<MyComponent>() 函数来渲染我的 blazor 组件。

问题是,我希望能够从这些组件中获取事件,以便我可以在组件本身之外对它们做出反应。

通常在 blazor 中,您会像这样将其添加到您的子组件代码部分,

    [Parameter] public Action<string> addPressed {get; set;}

然后像这样在父组件中处理

<MyComponent addPressed="DoSomethingOnPressed"/>

当我的组件被像这样通过 RenderComponentAsync 实例化时,我将如何解决这个问题

@(await Html.RenderComponentAsync<MyComponent>())

提前致谢

【问题讨论】:

  • 您想对服务器端的事件做出反应吗?还是在浏览器中?
  • @codevision 最好在服务器端,因为我将重新渲染组件
  • 我不知道这是否有效,但是您可以将参数传递给组件,您是否尝试过类似@(await Html.RenderComponentAsync&lt;MyComponent&gt;( addPressed = DoSomethingOnPressed))

标签: asp.net razor blazor


【解决方案1】:

只需使用允许您传递模型对象的重载,该对象将映射到 Blazor 应用程序的属性。

@(await Html.RenderComponentAsync<MyComponent>(new { addPressed = (_) => Console.WriteLine(_) }))

实际方法可以在_Host.cshtml页面中构建,也可以通过服务注入。

感谢Mister Magoo 的提示。

【讨论】:

    猜你喜欢
    • 2019-09-29
    • 2021-07-11
    • 2019-05-14
    • 2017-03-12
    • 2017-11-23
    • 2017-04-24
    • 1970-01-01
    • 1970-01-01
    • 2022-06-24
    相关资源
    最近更新 更多