我对dart很陌生,我正在用一个函数来解决问题,该函数假定返回一个List<CloseObservations>
而不是一个Future<dynamic>
,但我不知道为什么我的函数不返回正确的类型。
这是我的功能:
getData(BuildContext context) async {
List<CloseObservations> closeObservationData = new List();
WorkSiteState state = BlocProvider.of<WorkSiteBloc>(context).state;
List<Stage> stages = state.workSites[state.currentIndex].stages;
for (Stage stage in stages) {
String stageName = stage.name;
int closeNumber;
try {
for (Plan plan in stage.plans) {
for (Observation observation in plan.observations) {
if (!observation.open) {
closeNumber++;
}
}
}
} finally {
closeObservationData.add(CloseObservations(stageName, closeNumber));
}
}
return closeObservationData;
}
我希望对我的问题的解释清楚,即使不能告诉我。
谢谢您的帮助!
答案 0 :(得分:1)
您应明确指定函数的返回类型:
Future<List<CloseObservations>> getData(BuildContext context) async {
...
异步函数总是返回 Future (也有 FutureOr ,但是您不应该返回它-这是一种不好的做法)。如果不需要它返回 Future ,则可以通过删除 async 关键字并将返回类型更改为 List 使其同步。