1

我想做如下的事情:

void handleClick(){
    //do stuff
}

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

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

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

4

1 回答 1

4

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

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

您收到的错误实际上是在告诉您(尽管以一种神秘的方式):

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

这里EventListener基本上是任何带有签名void handle(Event event)的函数类型,因此您使用on.click.add添加的函数必须与此签名匹配。

于 2012-06-21T22:45:48.630 回答