dart - 使用 dart2js 错误编译的 js interop - Uncaught NoSuchMethodError : method not found:

标签 dart dart-polymer dart-js-interop dart2js

我生成了一个示例 Polymer Web 项目。添加了以下js文件。

jslib.js

function testfunction()
{
alert("test");
}

在 clickcounter.dart 中我添加了依赖

import 'package:js/js.dart' as js; 

并更改了 increment() 函数

void increment() {
    js.context.testfunction();
    count++;
}

在clickcounter.html中添加js文件导入

<script src="jslib.js" type="text/javascript"></script>

并在主 html 文件中添加

<script src="packages/browser/interop.js"></script>

在 Dartium 中执行时它可以正常工作。 但是当我将它编译成 javascript 时它给出了一个错误

Uncaught NoSuchMethodError : method not found: 'Symbol("testfunction")'
Receiver: Instance of 'Proxy'
Arguments: [] js_helper.dart:870


Stack Trace:
Error
at Object.wrapException (http://127.0.0.1:3030/testrun/out/web/testrun.html_bootstrap.dart.js:4632:13)
at Proxy.Object.noSuchMethod$1 (http://127.0.0.1:3030/testrun/out/web/testrun.html_bootstrap.dart.js:33708:13)
at Proxy_noSuchMethod_closure.call$0 (http://127.0.0.1:3030/testrun/out/web/testrun.html_bootstrap.dart.js:109612:46)
at Object.Proxy.static.Proxy__forward (http://127.0.0.1:3030/testrun/out/web/testrun.html_bootstrap.dart.js:109581:45)
at Proxy.noSuchMethod$1 (http://127.0.0.1:3030/testrun/out/web/testrun.html_bootstrap.dart.js:109492:14)
at Proxy.Object.testfunction$0 (http://127.0.0.1:3030/testrun/out/web/testrun.html_bootstrap.dart.js:56090:17)
at ClickCounter.increment$0 (http://127.0.0.1:3030/testrun/out/web/testrun.html_bootstrap.dart.js:7080:50)
at CachedInvocation.invokeOn$2 (http://127.0.0.1:3030/testrun/out/web/testrun.html_bootstrap.dart.js:6221:28)
at JsInstanceMirror._invoke$4 (http://127.0.0.1:3030/testrun/out/web/testrun.html_bootstrap.dart.js:12998:35)
at JsInstanceMirror.invoke$3 (http://127.0.0.1:3030/testrun/out/web/testrun.html_bootstrap.dart.js:12963:17)

最佳答案

尝试将对 interop.js 的引用放在已编译的 dart 文件和 dart.js 之上:

<script type="text/javascript" src="path/to/interop.js"></script>
<script type="text/javascript" src="path/to/main.dart.js"></script>
<script type="text/javascript" src="path/to/dart.js"></script>

这是我从 Dart Issue # 15065 学到的它解决了我在 dart:js 中遇到的类似错误图书馆。

关于dart - 使用 dart2js 错误编译的 js interop - Uncaught NoSuchMethodError : method not found:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19547730/

相关文章:

javascript - getScript 的 dart 等价物是什么

dart - 服务器端应用无法找到dart.js

flutter - 引发了另一个异常:RenderFlex在Flutter的右侧溢出了265个像素

dart - 在聚合物项目上转换 dart2js 时出错

json - HttpRequest.getString遇到错误功能,即使其成功

dart - 构建Chrome扩展程序时,Dartium和dart2js之间的区别

dart - 如何制作一个 JSON 对象并将此 JSON 对象传递给外部 JavaScript 函数?

listview - flutter |在 ListView 中使用 Listview.builder - 使整个页面可滚动

google-maps - flutter 谷歌地图,如何在折线中制作渐变?

dart - Dart 有小部件库吗?