dart - 如何在 Dart js-interop 中为类 'Proxy' 定义方法?

标签 dart dart-js-interop

我目前正在调用一个名为 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/

相关文章:

flutter - 你如何在 Dart 中对 mixin 进行单元测试?

flutter - Flutter:按钮周围的SizedBox破坏了文本对齐方式

jquery - Dart 中的事件 Jquery UI

javascript - 在 Dart JS 互操作中引用 "this"

dart - 在 js interop 中将 Dart 对象传递给 js 函数

flutter - 在文本抖动上绘制水平笔划

flutter - 无法运行命令run --release

dart - 如何在 flutter 图像选择器中将图像添加到 Firestore

java - 是否可以使用面向 GWT RPC 的命令模式而不使用 RPC 序列化?

javascript - 如何在聚合物元素中使用来自 Dart 的 javascript