Dart:意外的文本“迟到”
通过走出去这个教程对Riverpod并使用此代码给出了一个错误Unexpected text 'late'
class Clock extends StateNotifier<DateTime> {
Clock() : super(DateTime.now()) {
_timer = Timer.periodic(Duration(seconds: 1), (_) {
state = DateTime.now();
});
}
late final Timer _timer;
@override
void dispose() {
_timer.cancel();
super.dispose();
}
}
我的代码与链接网站上的代码完全相同。这个错误看起来很奇怪,因为我在 google 或 stackoverflow 上没有找到与此类似的任何内容。
回答
late适用于使用 min dart sdk 2.12 转换为空安全的项目。它告诉编译器它现在为空,但稍后会被初始化。在这种情况下,您可以省略 late 关键字,也可以将 pubspec.yaml 中的 min sdk 更改为 2.12。