使用 setState 时流分析不起作用
Flow analysis doesn't work when using setState
void f() {
String string;
setState(() {
string = fooCondition ? 'foo' : 'bar';
});
string.toUpperCase(); // Error
}
如果我删除 setState
条件,流分析工作!我可以将 setState
放在下面(空白 setState(() {}
),但这只会降低代码的可读性。如果不使 string
可为空并随后检查是否为空,是否有更好的方法来做到这一点?
这就是为什么您也可以在本地范围内使用 late
关键字。
late String string;
回答你的问题:
void f() {
late String string;
setState(() {
string = fooCondition ? 'foo' : 'bar';
});
string.toUpperCase(); // Works
}
void f() {
String string;
setState(() {
string = fooCondition ? 'foo' : 'bar';
});
string.toUpperCase(); // Error
}
如果我删除 setState
条件,流分析工作!我可以将 setState
放在下面(空白 setState(() {}
),但这只会降低代码的可读性。如果不使 string
可为空并随后检查是否为空,是否有更好的方法来做到这一点?
这就是为什么您也可以在本地范围内使用 late
关键字。
late String string;
回答你的问题:
void f() {
late String string;
setState(() {
string = fooCondition ? 'foo' : 'bar';
});
string.toUpperCase(); // Works
}