空对象没有方法[] = [英] The null object does not have a method []=

查看:93
本文介绍了空对象没有方法[] =的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试运行以下示例减去pubspect.yaml中的一些差异,因为它不会立即可用。也就是说,反射必须为 0.2.0 而不是 0.1.4 ,如示例链接所示。

I'm trying to run this following example minus some differences in pubspect.yaml since it doesn't run out of the box. Namely reflections needs to be 0.2.0 instead of 0.1.4 as seen on the example link.

一切都可以编译。但是我收到运行时错误。我将其跟踪到以下文件:

Everything compiles fine. However I get a runtime error. I traced it to the following file:

https://github.com/dart-lang/polymer-dart/blob/behaviors/lib/init.dart

第25行在 Dartium 浏览器中出现以下错误:

On line 25 I get the following error in the Dartium browser:

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"

据我所知。同样,所有其他文件都与该示例相同。

That's as far as I got. Again, all the other files are identical to that example.

似乎是一个依赖问题,但我真的不知道从哪里可以运行示例。是否可以解决此错误?我知道dart-polymer仍在RC中,但我认为简单示例可以运行...

Seems to be a dependency problem but I really don't know where to go from here to make the example run. Is it possible to fix this error? I know dart-polymer is still in RC but I'd think that simple example would run...

更新
似乎未能在 polymer / init.dart 中的 setUpListMethods()上失败,因为 context 变量数组不存在。我创建了一个断点,并且在范围内未找到上下文。上下文在哪里声明?仍然闻起来像是一个依赖性问题。

Update Seems to fail on setUpListMethods() in polymer/init.dart because context variable array does not exist. I created a breakpoint and context is not found within the scope. Where is context declared? It still smells like a dependency problem.

推荐答案

如果使用最新的Polymer 1.0.0-rc.x版本,则需要添加 polymer 变压器而不是 reflectable 变压器

If you use a recent Polymer 1.0.0-rc.x version you need to add the polymer transformer instead of the reflectable transformer

transformers:
- polymer:
    entry_points:
    - web/index.html

另请参见 https://github.com/ dart-lang / polymer-dart

这篇关于空对象没有方法[] =的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆