Polymer.dart に記述された 2 つのカスタム コンポーネントがあり、1 つはもう 1 つの親です。親の子コンポーネントへの参照を取得したいのですが、型注釈を使用すると例外が発生します。一方、var
変数を宣言するためにキーワードを使用すると、正常に機能します。
型を使用したときに表示されるエラー メッセージとスタック トレース:
キャッチされないエラー: タイプ 'ChildComponent' は、タイプ 'ChildComponent' の 'childComponent' のサブタイプではありません。
スタックトレース:
#0 ParentComponent.inserted (パッケージ:types_test_lib/parent_component.dart?1375856554489:9:67)
#1 _registerLifecycleInsert. (パッケージ:custom_element/custom_element.dart:643:21)
#2 _ZoneBase._runInZone (dart:async/zone.dart:82:17)
#3 _ZoneBase._runGuarded (dart:async/zone.dart:99:22)
#4 _ZoneBase.executeCallbackGuarded (dart:async/zone.dart:62:21)
#5 _RunAsyncZone.runAsync.. (dart:async/zone.dart:205:61)
#6 performMicrotaskCheckpoint (パッケージ:observe/src/microtask.dart:36:17)
#7 wrapMicrotask.. (パッケージ:observe/src/microtask.dart:58:35)
#8 runZonedExperimental (dart:async/zone.dart:259:53)
#9 runZonedExperimental。(dart:async/zone.dart:256:34)
#10 _ZoneBase._runInZone (dart:async/zone.dart:82:17)
#11 _ZoneBase._runUnguarded (dart:async/zone.dart:102:22)
#12 runZonedExperimental (dart:async/zone.dart:255:30)
#13 wrapMicrotask. (パッケージ:observe/src/microtask.dart:54:25)
#14 initPolymer (パッケージ:polymer/polymer.dart:72:5)
#15 メイン (.../D:/workspace/dart/types_test/web/types_test.html:7:22)
例外: タイプ 'ChildComponent' は、タイプ 'ChildComponent' の 'childComponent' のサブタイプではありません。
index.html:
<!DOCTYPE html>
<html>
<head>
<link rel="import" href="parent_component.html"/>
<link rel="import" href="child_component.html"/>
<script src="packages/polymer/boot.js"></script>
</head>
<body>
<parent-component>
<child-component/>
</parent-component>
<script type="application/dart">
void main() {}
</script>
</body>
</html>
親コンポーネント.html:
<!DOCTYPE html>
<html>
<body>
<polymer-element name="parent-component" extends="div">
<template></template>
<script type="application/dart" src="parent_component.dart"></script>
</polymer-element>
</body>
</html>
親コンポーネント.dart:
import "package:polymer/polymer.dart";
import "child_component.dart";
@CustomTag("parent-component")
class ParentComponent extends PolymerElement with ObservableMixin {
void inserted() {
var childComponent = host.query("child-component").xtag;
// !!! ChildComponent childComponent = host.query("child-component").xtag;
}
}
child_component.html:
<!DOCTYPE html>
<html>
<body>
<polymer-element name="child-component" extends="div">
<template></template>
<script type="application/dart" src="child_component.dart"></script>
</polymer-element>
</body>
</html>
child_component.dart:
import "package:polymer/polymer.dart";
@CustomTag("child-component")
class ChildComponent extends PolymerElement with ObservableMixin {
}
私は何か間違ったことをしていますか?何が問題になる可能性がありますか?
返信ありがとうございます。
ガボール