我正在使用Bloc模式,并具有以下代码来定义我的状态:
import 'package:meta/meta.dart'
@immutable
abstract class UiState {}
class Loading extends UiState {}
class Success extends UiState {
Success(this.message);
final String message;
}
class Failure extends UiState {}
我尝试如下使用
UiState
:class MyWidget extends StatelessWidget {
const MyWidget({
Key key,
@required this.uiState,
}) : super(key: key);
final UiState uiState;
Widget build(BuildContext context) {
if (uiState is Success) {
return Text(uiState.message);
}
...
}
}
但是VSCode告诉我“未为类'UiState'定义getter'消息'”。
我以前使用过智能石膏,它们确实起作用。但是在这种情况下,我无法弄清楚为什么它不起作用。
我的pubspec具有以下内容:
environment:
sdk: ">=2.1.0 <3.0.0"
因此,我认为我的dart版本至少为2.1.0。
最佳答案
is
仅对局部变量执行隐式类型提升。对于非局部变量,类型升级不是自动的,因为它们可能是getter函数的结果,该函数从一次访问返回另一次访问时返回不同的值。
引用文献: