具有不匹配参数的闭包调用:再次调用函数'call'

时间:2013-12-18 16:57:11

标签: callback dart dart-js-interop

就在一个月前,我遇到了这个问题Closure call with mismatched arguments: function 'call'和js interop。

现在我对SnapSVG库有同样的问题。我现在正在与JsInterop结合使用它。今天我尝试使用mouseover函数,我得到了相同的异常。

但是当我悬停SVG元素时,我的函数会被触发四次:

hover in
hover in
hover in
hover in 
Breaking on exception: Closure call with mismatched arguments: function 'call'

我试过了:

var img = s.image("$url", x, y, image.width/2, image.height/2); 
js.FunctionProxy hover = new js.FunctionProxy(() {
  print("hover in");
});

img.mouseover(hover);

var img = s.image("$url", x, y, image.width/2, image.height/2);
img.mouseover(() {
  print("hover in");
});

这次我检查了两次,回调函数没有额外的参数。

1 个答案:

答案 0 :(得分:1)

考虑到您粘贴的日志,有时会使用参数调用鼠标悬停处理程序。要处理它,您可以使用带有可选参数的函数:

var img = s.image("$url", x, y, image.width/2, image.height/2);
img.mouseover(([p1, p2, p3, p4]) {
  print("hover in");
});

上面的回调现在处理0到4个参数的调用。