var element = await JSRuntime.InvokeAsync("getElementById", "myElementId");
await element.InvokeVoidAsync("addEventListener", "click", DotNetObjectReference.Create(this).ToString());
Dispose
方法取消订阅事件,例如在组件卸载时:protected override void OnAfterRender(bool firstRender)
{
if (firstRender)
{
var element = await JSRuntime.InvokeAsync("getElementById", "myElementId");
await element.InvokeVoidAsync("addEventListener", "click", DotNetObjectReference.Create(this).ToString());
}
}
public void Dispose()
{
var element = await JSRuntime.InvokeAsync("getElementById", "myElementId");
await element.InvokeVoidAsync("removeEventListener", "click", DotNetObjectReference.Create(this).ToString());
}
在这个示例中,当组件加载时,注册了一个click
事件,当组件卸载(即可见性true
)时,取消注册该事件。在取消事件时,使用removeEventListener
方法,并传递事件名称和前面注册的字符串(通过DotNetObjectReference
创建)作为参数。