0

我将 (2.0)js-interop 库与 JS 库ImageLoaded结合使用,我卡住了这个FunctionProxy类,因为下面的代码抛出以下错误:

打破异常:参数不匹配的闭包调用:函数“调用”

js.FunctionProxy loaded = new js.FunctionProxy((){
      print("called");
      js.Proxy pckry = new js.Proxy(context.Packery, container, options);
    });
    
js.Proxy img = new js.Proxy(context.imagesLoaded, container, loaded);

这很奇怪,因为我的 js 回调在应用程序崩溃之前被调用了 5 次。

4

1 回答 1

2

查看imagesLoadedUsage部分,回调似乎采用了一个参数。因此,您必须将此参数添加到您的回调中:

js.FunctionProxy loaded = new js.FunctionProxy((instance) {
  print("called");
  js.Proxy pckry = new js.Proxy(context.Packery, container, options);
});

js.Proxy img = new js.Proxy(context.imagesLoaded, container, loaded);

补充说明 :

  • 你可以避免new js.FunctionProxy。只有少数情况需要它,您的情况不是其中之一。
  • imagesLoaded可以用作函数,它简化了代码。

因此,您应该能够使用:

final img = context.imagesLoaded(container, (instance) {
  print("called");
  js.Proxy pckry = new js.Proxy(context.Packery, container, options);
});
于 2013-11-18T14:31:21.090 回答