次のようなクラスの新しいインスタンスを動的に作成しようとしました:
this.componentClass.newInstance(new Symbol(''), [this, el]).reflectee;
this.componentClass に反映されたクラスが呼び出されButtonComponent
、Component のサブクラスになります。これでテストを実行すると、エラーが発生します。
Test failed: Caught No constructor 'ButtonComponent.' declared in class 'ButtonComponent'.
NoSuchMethodError : method not found: 'ButtonComponent.'
Receiver: Type: class 'ButtonComponent' Arguments: [...]
Component クラスと ButtonComponent クラスの両方にデフォルトのコンストラクターがあります。何も見逃さないようにするためのコードは次のとおりです。
class Component {
Element element ;
Template template;
Component(this.template, this.element) {
this.element.replaceWith(new Element.html(template.html));
}
}
class ButtonComponent extends Component {
ButtonComponent(template, element) : super(template, element) {};
}
ここで何が間違っているのでしょうか?ありがとうございました。