【发布时间】:2021-11-26 08:19:39
【问题描述】:
当我将项目从旧版本转移到新的空安全版本时出现此错误。
这里显示错误不能无条件调用方法'-',因为接收者可以是'null'。尝试使调用有条件(使用'?.')或向目标添加空检查('!')。它在secondsRemaining--; 行中显示错误,所以我添加了一个空检查运算符secondsRemaining!--; 再次显示错误为非法分配给不可分配表达式。下面是我的定时器函数。
int? secondsRemaining;
bool enableResend = false;
late Timer timer;
void startTimer() {
timer = Timer.periodic(Duration(seconds: 1), (_) {
if (secondsRemaining != 0) {
setState(() {
secondsRemaining--;
});
} else {
setState(() {
enableResend = true;
});
}
});
}
【问题讨论】:
-
这是github.com/dart-lang/language/issues/1113。但是,您应该考虑使
secondsRemaining不可为空。timer改为可以为空会更有意义。
标签: flutter dart timer flutter-web dart-null-safety