在声明 _disposers
变量时出现错误。
无法在初始化程序中访问实例成员“name”。
class FormStore = _FormStore with _$FormStore;
abstract class _FormStore with Store {
@observable
String name = '';
List<ReactionDisposer> _disposers = [
reaction((_) => name, validateUsername), // error on name and on validateUsername
];
// ...
提示
<块引用>尝试用不同的替换对实例成员的引用 表达
为什么会出现错误以及如果将 late
放在 List<ReactionDisposer> _disposers
之前为什么此错误会消失?
答案 0 :(得分:1)
您不能使用其他实例成员(例如 _disposers
)来初始化 name
这样的实例成员,因为 dart 不允许您在初始化程序中使用对“this”的引用。
https://dart.dev/tools/diagnostic-messages#implicit_this_reference_in_initializer
当您使用 late
时,它会变得懒惰,这意味着它只会在需要时(通常在您调用它时)进行初始化/评估。