我试图在example之后运行此项,减去pubspect.yaml中的一些差异,因为它没有开箱即用。即,反射需要0.2.0
而不是0.1.4
,如示例链接所示。
一切都很好。但是我收到运行时错误。我将其追溯到以下文件:
https://github.com/dart-lang/polymer-dart/blob/behaviors/lib/init.dart
在第25行,我在Dartium
浏览器中收到以下错误:
The null object does not have a method '[]='.
NoSuchMethodError: method not found: '[]='
Receiver: null
Arguments: ["push", Closure: (List, Iterable) => dynamic]
#0 Object._noSuchMethod (dart:core-patch/object_patch.dart:42)
#1 Object.noSuchMethod (dart:core-patch/object_patch.dart:45)
#2 _setUpListMethods (package:polymer/init.dart:25:14)
#3 initPolymer.<initPolymer_async_body> (package:polymer/init.dart:17:3)
#4 _RootZone.runUnary (dart:async/zone.dart:1204)
#5 _FutureListener.handleValue (dart:async/future_impl.dart:131)
#6 _Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:637)
#7 _Future._propagateToListeners (dart:async/future_impl.dart:667)
#8 _Future._completeWithValue (dart:async/future_impl.dart:477)
#9 _Future._asyncComplete.<anonymous closure> (dart:async/future_impl.dart:528)
#10 _microtaskLoop (dart:async/schedule_microtask.dart:41)
#11 _startMicrotaskLoop (dart:async/schedule_microtask.dart:50)
#12 _ScheduleImmediateHelper._handleMutation (dart:html:49308)
我的pubspec.yaml
name: myproject
dependencies:
polymer: ^1.0.0-rc
web_components: ^0.12.0
browser: ^0.10.0
reflectable: ^0.2.0
transformers:
- reflectable:
entry_points:
- web/main.dart
environment:
sdk: ">=1.2.0 <2.0.0"
dependency_overrides:
polymer:
git:
ref: behaviors
url: https://github.com/dart-lang/polymer-dart.git
polymer_interop:
git:
ref: 0.2.0-dev
url: https://github.com/dart-lang/polymer_interop.git
pubspec.lock
# Generated by pub
# See http://pub.dartlang.org/doc/glossary.html#lockfile
packages:
analyzer:
description:
name: analyzer
url: "https://pub.dartlang.org"
source: hosted
version: "0.26.4"
args:
description:
name: args
url: "https://pub.dartlang.org"
source: hosted
version: "0.13.4+2"
async:
description:
name: async
url: "https://pub.dartlang.org"
source: hosted
version: "1.11.0"
barback:
description:
name: barback
url: "https://pub.dartlang.org"
source: hosted
version: "0.15.2+8"
boolean_selector:
description:
name: boolean_selector
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.2"
browser:
description:
name: browser
url: "https://pub.dartlang.org"
source: hosted
version: "0.10.0+2"
charcode:
description:
name: charcode
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.0"
cli_util:
description:
name: cli_util
url: "https://pub.dartlang.org"
source: hosted
version: "0.0.1+2"
code_transformers:
description:
name: code_transformers
url: "https://pub.dartlang.org"
source: hosted
version: "0.2.11"
collection:
description:
name: collection
url: "https://pub.dartlang.org"
source: hosted
version: "1.9.0"
convert:
description:
name: convert
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.0"
crypto:
description:
name: crypto
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.1"
csslib:
description:
name: csslib
url: "https://pub.dartlang.org"
source: hosted
version: "0.13.2"
dart_style:
description:
name: dart_style
url: "https://pub.dartlang.org"
source: hosted
version: "0.2.1"
glob:
description:
name: glob
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.3"
html:
description:
name: html
url: "https://pub.dartlang.org"
source: hosted
version: "0.12.2+2"
http_multi_server:
description:
name: http_multi_server
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.2"
http_parser:
description:
name: http_parser
url: "https://pub.dartlang.org"
source: hosted
version: "3.0.2"
initialize:
description:
name: initialize
url: "https://pub.dartlang.org"
source: hosted
version: "0.6.1+2"
logging:
description:
name: logging
url: "https://pub.dartlang.org"
source: hosted
version: "0.11.3"
matcher:
description:
name: matcher
url: "https://pub.dartlang.org"
source: hosted
version: "0.12.0+2"
mime:
description:
name: mime
url: "https://pub.dartlang.org"
source: hosted
version: "0.9.3"
package_config:
description:
name: package_config
url: "https://pub.dartlang.org"
source: hosted
version: "0.1.5"
path:
description:
name: path
url: "https://pub.dartlang.org"
source: hosted
version: "1.3.9"
plugin:
description:
name: plugin
url: "https://pub.dartlang.org"
source: hosted
version: "0.1.0"
polymer:
description:
ref: behaviors
resolved-ref: "46be7836f387a8a2868507baf61940e871519986"
url: "https://github.com/dart-lang/polymer-dart.git"
source: git
version: "0.17.0-dev"
polymer_interop:
description:
ref: "0.2.0-dev"
resolved-ref: cbef534ef5d0839beeeb63f7c25f502df7e79377
url: "https://github.com/dart-lang/polymer_interop.git"
source: git
version: "0.2.0"
pool:
description:
name: pool
url: "https://pub.dartlang.org"
source: hosted
version: "1.2.4"
pub_semver:
description:
name: pub_semver
url: "https://pub.dartlang.org"
source: hosted
version: "1.3.0"
reflectable:
description:
name: reflectable
url: "https://pub.dartlang.org"
source: hosted
version: "0.2.0"
shelf:
description:
name: shelf
url: "https://pub.dartlang.org"
source: hosted
version: "0.6.5+2"
shelf_static:
description:
name: shelf_static
url: "https://pub.dartlang.org"
source: hosted
version: "0.2.4"
shelf_web_socket:
description:
name: shelf_web_socket
url: "https://pub.dartlang.org"
source: hosted
version: "0.2.1"
source_map_stack_trace:
description:
name: source_map_stack_trace
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.4"
source_maps:
description:
name: source_maps
url: "https://pub.dartlang.org"
source: hosted
version: "0.10.1+1"
source_span:
description:
name: source_span
url: "https://pub.dartlang.org"
source: hosted
version: "1.2.3"
stack_trace:
description:
name: stack_trace
url: "https://pub.dartlang.org"
source: hosted
version: "1.6.6"
stream_channel:
description:
name: stream_channel
url: "https://pub.dartlang.org"
source: hosted
version: "1.5.0"
string_scanner:
description:
name: string_scanner
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.0"
test:
description:
name: test
url: "https://pub.dartlang.org"
source: hosted
version: "0.12.15+1"
typed_data:
description:
name: typed_data
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.3"
unittest:
description:
name: unittest
url: "https://pub.dartlang.org"
source: hosted
version: "0.11.6+4"
utf:
description:
name: utf
url: "https://pub.dartlang.org"
source: hosted
version: "0.9.0+3"
watcher:
description:
name: watcher
url: "https://pub.dartlang.org"
source: hosted
version: "0.9.7+2"
web_components:
description:
name: web_components
url: "https://pub.dartlang.org"
source: hosted
version: "0.12.0+4"
web_socket_channel:
description:
name: web_socket_channel
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.4"
when:
description:
name: when
url: "https://pub.dartlang.org"
source: hosted
version: "0.2.0"
which:
description:
name: which
url: "https://pub.dartlang.org"
source: hosted
version: "0.1.3"
yaml:
description:
name: yaml
url: "https://pub.dartlang.org"
source: hosted
version: "2.1.10"
sdk: ">=1.17.0-dev.6.2 <1.20.0"
就我而言。同样,所有其他文件都与该示例相同。
似乎是一个依赖性问题,但我真的不知道从这里开始运行示例。是否可以修复此错误?我知道dart-polymer仍然在RC中,但我认为这个简单的例子会运行......
更新
由于setUpListMethods()
变量数组不存在,polymer/init.dart
中的context
似乎失败了。我创建了一个断点,并且在范围内找不到context
。上下文在哪里宣布?它仍然闻起来像一个依赖性问题。
答案 0 :(得分:2)
如果您使用最近的Polymer 1.0.0-rc.x版本,则需要添加polymer
转换器而不是reflectable
转换器
transformers:
- polymer:
entry_points:
- web/index.html