0

(2.0)js-interop ライブラリを JS ライブラリImageLoadedFunctionProxyと組み合わせて使用​​していますが、以下のコードで次のエラーがスローされるため、クラスがスタックしています。

例外で中断: 引数が一致しないクロージャー呼び出し: 関数 '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 回呼び出されるため、これは奇妙です。

4

1 に答える 1

2

imagesLoadedUsageセクションを見ると、コールバックが 1 つのパラメータを取るように見えます。したがって、このパラメータをコールバックに追加する必要があります:

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ます。それが必要なケースは限られており、ここでのあなたのケースはその1つではありません.
  • 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 に答える