d3.dart 0.2.0 - 找不到方法:'_proxy'

时间:2016-12-06 10:30:22

标签: d3.js dart

我开始为d3.js使用dart API(在这里找到:https://pub.dartlang.org/packages/d3),当我尝试使用TimeScale创建Axis时,我遇到了一个问题。

控制台:

oSuchMethodError: method not found: '_proxy'
Receiver: Instance of 'TimeScale'
Arguments: []

timeline.dart代码

x = new time.TimeScale()
  ..range([0, width])
  ..domain([new DateTime(1999, 0, 1), new DateTime(2014, 0, 0)]);

x = new svg.Axis()
  ..scale(x);

日志:

#0      Object._noSuchMethod (dart:core-patch/object_patch.dart:44)
#1      Object.noSuchMethod (dart:core-patch/object_patch.dart:47)
#2      getProxy (package:d3/src/js/scale.dart:679:31)
#3      Axis.scale (package:d3/src/js/svg.dart:867:16)
#4      Timeline.attached (http://localhost:20080/frontend/dart/components/timeline.dart:29:9)
#5      Application.init.<init_async_body>.<anonymous closure> (http://localhost:20080/frontend/dart/application/application.dart:128:25)
#6      _HashVMBase&MapMixin&&_LinkedHashMapMixin.forEach (dart:collection-patch/compact_hash.dart:351)
#7      Application.init.<init_async_body> (http://localhost:20080/frontend/dart/application/application.dart:105:37)
#8      Future.Future.microtask.<anonymous closure> (dart:async/future.dart:144)
#9      _microtaskLoop (dart:async/schedule_microtask.dart:41)
#10     _startMicrotaskLoop (dart:async/schedule_microtask.dart:50)
#11     _ScheduleImmediateHelper._handleMutation (dart:html:49308)
[[class]]: _StackTrace(anonymous function) @ VM2334:1
VM2334:1 Uncaught Unhandled exception:
Closure call with mismatched arguments: function '_proxy'

NoSuchMethodError: method not found: '_proxy'
Receiver: Instance of 'TimeScale'
Arguments: []
#0      Application.init.<init_async_body>.<anonymous closure> (http://localhost:20080/frontend/dart/application/application.dart:131:21)
#1      _HashVMBase&MapMixin&&_LinkedHashMapMixin.forEach (dart:collection-patch/compact_hash.dart:351)
#2      Application.init.<init_async_body> (http://localhost:20080/frontend/dart/application/application.dart:105:37)
#3      Future.Future.microtask.<anonymous closure> (dart:async/future.dart:144)
#4      _microtaskLoop (dart:async/schedule_microtask.dart:41)
#5      _startMicrotaskLoop (dart:async/schedule_microtask.dart:50)
#6      _ScheduleImmediateHelper._handleMutation (dart:html:49308)(anonymous function) @ VM2334:1

d3 / src / js / scale.dart - 第679行

JsObject getProxy(arg) => arg._proxy;

d3 / src / js / svg.dart

  scale([scale = undefined]) {
    var args = [];
    if (scale != undefined) {
      //line 867
      args.add(sc.getProxy(scale));
    }
    var retval = _proxy.callMethod('scale', args);
    if (scale == undefined) {
      return retval; // TODO: wrap in Scale
    } else {
      return new Axis._(retval);
    }
  }

有谁知道什么是错的?

由于

1 个答案:

答案 0 :(得分:0)

查看软件包代码,您只能提供属于scale库的d3/src/js/scale.dart参数。

使用arg._proxy中的私人成员只会检索同一个库中_proxy的{​​{1}}属性(这是前置arg的含义:私有到它的图书馆)。

不幸的是,我没有看到任何简单的解决方案来解决当前包源的问题。