将方法传递给EventListenerList“添加”方法

时间:2012-06-21 22:21:28

标签: dart

我想做以下事情:

void handleClick(){
    //do stuff
}

void addHandlerToButton(){
    window.document.query('#somebutton').on.click.add(handleClick);
}

Dart编辑器的静态检查报告'() -> void' is not assignable to 'EventListener'

我有一种感觉,我错过了一些非常明显的东西。

1 个答案:

答案 0 :(得分:4)

单击处理程序将click事件作为参数传递(例如,您可以获取屏幕坐标,目标元素等)。所以你的处理程序方法签名必须是

void handleClick(Event event){
    // do stuff with event
}

您正在回忆的错误实际上是在告诉您(虽然以一种神秘的方式):

  

'() - > void'不能分配给'EventListener'

此处 EventListener 基本上是任何带有签名 void handle(事件事件)的函数类型,因此您使用 on.click.add 添加的功能必须符合此签名。