есть ли способ перебрать будущий <list> во флаттере

После выполнения этого запроса на получение я хотел бы перебрать Future, но получаю ошибки, если я попытаюсь использовать циклы for или если я попытаюсь установить его как List. Есть ли другой способ перебора каждого элемента в списке.

Future<List> getDailyTask(DateTime date) async {
  var params = {'date': date.toIso8601String()};
  Uri uri = Uri.parse('URL');
  final newURI = uri.replace(queryParameters: params);
  http.Response response = await http.get(
    newURI,
    headers: {"Accept": "application/json"},
  );

  List foo = json.decode(response.body);
  return foo;
}

1 ответ

Решение

Вы не можете выполнять итерацию напрямую в будущем, но вы можете дождаться завершения будущего, а затем выполнить итерацию по списку.

Вы можете использовать любой из этих методов в зависимости от вашего варианта использования.

List dailyTaskList = await getDailyTask(DateTime.now());
// Now you can iterate on this list.
for (var task in dailyTaskList) {
  // do something
}

или

getDailyTask(DateTime.now()).then((dailyTaskList) {
  for (var task in dailyTaskList) {
    // do something
  }
});
Другие вопросы по тегам