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 に答える