Значение типа «Future» не может быть возвращено из метода, поскольку оно имеет возвращаемый тип » Future

#flutter #dart #dart-null-safety

Вопрос:

 Future<bool> foo(BuildContext context) {
  return Navigator.pushNamed<bool>(context, '/bar'); // Error
}
 

Ошибка:

Значение типа «Future<bool?>» не может быть возвращено из функции «foo», поскольку оно имеет возвращаемый тип «Future»

Ответ №1:

Navigator.push не удается вернуть тип, не допускающий значения null, потому что в вашем /bar маршруте вы, вероятно, могли бы сделать следующее, не передавая никакого значения в параметре результата.

 Navigator.pop(context);
 

Вам следует изменить свою подпись с Future<bool> на Future<bool?> :

 Future<bool?> foo(BuildContext context) {
  return Navigator.pushNamed<bool>(context, '/bar');
}