当我尝试在构造函数中分配最终字段时,我在chrom中出现Uncaught TypeError: undefined is not a function
错误。当我删除它有效的final
字时(我正在使用dart2js将dart转换为Chrome)。有人可以解释一下为什么我不能指定最后一个字段吗?
这有效:
import 'dart:html';
class FileToUploadSet {
InputElement _fooElement;
FileToUploadSet(Element motherElement) {
this._input = motherElement.querySelector('#foo');
}
}
这不是:
import 'dart:html';
class FileToUploadSet {
final InputElement _fooElement;
FileToUploadSet(Element motherElement) {
this._input = motherElement.querySelector('#foo');
}
}
答案 0 :(得分:3)
您只能分配到声明字段的最终字段或构造函数初始化列表
import 'dart:html';
class FileToUploadSet {
final InputElement _fooElement; <== here you can assign to a final field
final String someField
FileToUploadSet(Element motherElement, /* here with this._fooElement */)
/* and here like */ : this._fooElement = 'someValue' {
// but not in the constructor body.
this._input = motherElement.querySelector('#foo');
}
}