我正在将(2.0)js-interop库与JS库ImageLoaded结合使用,并且我遇到了FunctionProxy
类,因为下面的代码抛出了错误:
突破异常:关闭调用参数不匹配:函数'call'
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次。
答案 0 :(得分:2)
查看imagesLoaded的 Usage 部分,看起来回调需要一个参数。所以你必须将这个参数添加到你的回调中:
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);
});