Используя детектор жестов, но получив ожидаемое значение типа » Карта», но получил значение типа «Null»

#flutter #dart

Вопрос:

Карта? search = ModalRoute.of(контекст)?.настройки.аргументы как карта; так как он получит нулевое значение, но при его использовании я получаю ошибку. Я новичок в трепетании. Пожалуйста, кто-нибудь, помогите мне в решении этой проблемы.

 ***** From home page******  GestureDetector(  onTap: () {  Navigator.pushNamed(context, "/loading",arguments: {  "searchText": searchController.text,  });    *******from loading page*********  Map? info = ModalRoute.of(context)!.settings.arguments as Map?;   Map? search = ModalRoute.of(context)?.settings.arguments as Map;   city=search['searchText'];  if(search?.isEmpty??true)  {  city=search['searchText'];  }      

Ответ №1:

 Map? search = ModalRoute.of(context)?.settings.arguments as Map;  

эта строка должна быть

 Map? search = ModalRoute.of(context)?.settings.arguments as Map?;  

Обратите ? внимание в конце… потенциально это может быть null, но вы пытаетесь привести его к ненулевому значению.