【发布时间】:2020-11-25 22:48:50
【问题描述】:
我有一个 Canvas 元素,它有一些用 Javascript 编写的自定义功能。我正在尝试在 Blazor Webassembly 组件中为此功能创建一个包装器。
Javascript 代码使用dispatchEvent 方法生成自定义事件:
const event = new CustomEvent("uvrectadded", {
bubbles: true,
detail: { uvrect: uvr }
});
const result = this.canvas.dispatchEvent(event);
如何在 Blazor 服务器端组件中侦听此事件?我尝试了以下方法:
<canvas id="map-canvas" @uvrectadded="OnUVRectAdded"></canvas>
@code{
private void OnUVRectAdded(EventArgs e)
{
Console.WriteLine("Blazor: ONUVRectAdded");
}
}
在上面的代码中,指令没有编译,但我不知道如何注册事件指令。
除此之外:我还尝试从 Javascript 组件中引发 change 事件,这确实由 Blazor 代码使用 @onchange 指令注册,但是,抛出异常说系统无法反序列化事件。
【问题讨论】:
-
你有没有设法找到这个问题的答案?我正在寻找同样的东西。
EventHandler属性也没有帮助,因为我不知道我应该用它做什么。