首页 > 解决方案 > 如何在 dart 中使用 javascript 库?

问题描述

我想知道如何在 dart 中使用 javascript 库?网上有几个例子,但要么不起作用,要么超级冗长,而且它们都至少有 2 年的历史。

我想在我的情况下使用 D3 库

谢谢

标签: javascriptdartdart-pub

解决方案


在 dart 中使用 javascript 最简单的方法是立即使用dart:js库,您可以在其中context.callMethod调用 javascript 中的方法。

前任。

import 'dart:js';

main() => context.callMethod('alert', ['Hello from Dart!']);//'alert' is the function name, the second parameter is a `List` of arguments passed to the function.

或者,您可以使用package:js,它通常应该被使用并提供更高级别的功能,但它可能更难开始使用,因为文档有点参差不齐。这个库使用带有 external 关键字的注解来处理 dart-JS 互操作。

前任。

@JS()
library stringify;

import 'package:js/js.dart';

// Calls invoke JavaScript `JSON.stringify(obj)`.
@JS('JSON.stringify')
external String stringify(Object obj);

有了这个,您可以stringify在其他地方调用,静态分析将能够更好地发现类型错误,因为您可以显式定义参数和返回类型。


推荐阅读