我目前正在调用一个名为 Bootstrap Context Menu 的基于 jQuery 的插件.
为了调用它,我需要使用 Javascript Interop library .但是当我从中调用 jQuery 方法时,我收到以下警告:
The method 'jQuery' is not defined for the class 'Proxy'
代码片段:
js.scoped(() {
js.context.jQuery('#canvas').contextmenu();
});
在某些 dart/js-interop 更新之前,这不会发生。摆脱此警告的正确方法是什么?
最佳答案
您收到此警告是因为新的分析器似乎没有意识到选项 Report 'no such member' warnings when class defines noSuchMethod()(报告于 http://dartbug.com/10016)。如果您切换回旧版分析器,您应该不会再看到此警告。
也就是说,如果你想使用新的分析器并摆脱这个警告,你可以像这样使用数组表示法:
js.context["jQuery"]('#canvas')["contextmenu"]();
但是:
- 它的可读性较差,特别是对于方法调用。
- 方法调用的效率较低,因为完成了 2 个操作(
f = js.context["jQuery"]
,然后是f('#canvas')
)共 1 个(js.context.jQuery('#canvas')
)
关于dart - 如何在 Dart js-interop 中为类 'Proxy' 定义方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16050884/