首页 > 解决方案 > 将 Dart 2 Map 动态转换为 Javascript 对象

问题描述

我正在chrome.storage.local.set使用新js包和 dart 2 SDK 编写自定义 dart 到 js 互操作。

Dart 中的AMap与 JavaScript 中的对象不同,但强迫开发人员每次想要使用面向公众的 API 时都编写抽象类也不是正确的做法。

因此,我正在寻找一种将 dart Map 转换为不需要编写抽象类的 JavaScript 对象的方法。

使用dart:js它很容易将 dart Map 转换为 JS 对象,但使用新js包我还没有看到任何将 dart Map 动态转换为 js 对象的示例。

标签: dartdart-js-interop

解决方案


我可以通过编写将 Map 转换为 js 对象的函数来解决这个问题。

import 'package:js/js_util.dart' as js;
Object mapToJSObj(Map<dynamic,dynamic> a){
  var object = js.newObject();
  a.forEach((k, v) {
    var key = k;
    var value = v;
    js.setProperty(object, key, value);
  });
  return object;
}

推荐阅读