[英]How do I broadcast an EventCallback to multiple listeners in Blazor WASM?
从概念上讲,我很难找出如何将事件广播到多个组件。 似乎 EventCallback 属性只能设置为一种方法。 基本上,我有一个服务运行基于 window 事件的方法,并且我希望多个不同的组件能够“订阅”此更改。
即使是指向有关如何完成此操作的文档的指针也将不胜感激
我看到你找到了一个可行的选择,但我可以直接回答你的问题。
Blazor 的EventCallback
和EventCallback<T>
是传统委托的包装器,传统委托已经完全支持您想要做的事情。 诀窍是在将其交给 Blazor 转换为EventCallback
之前添加到他们的调用列表中。
这与向事件添加处理程序没有什么不同:
Func<string, Task>? MyDelegate { get; set;} = null;
void InitializeMyDelegate()
{
MyDelegate += FirstHandler;
MyDelegate += SecondHandler;
}
如果您使其可访问,其他类也可以添加到调用列表中。
完成后,只需照常将其交给 Blazor 即可:
<SomeComponent MyEvent="MyDelegate">
// other stuff
</SomeComponent>
每当SomeComponent
的该实例调用MyEvent.InvokeAsync()
时,您添加到MyDelegate
的每个处理程序都将被调用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.