Хобрук: Ваш путь к мастерству в программировании

Тип возврата 'dynamic' не является 'bool', как того требует контекст закрытия.

Я использую панель поиска в своем приложении Flutter. Но строка _allUsers.where((user) => user["name"].toLowerCase().contains(enteredKeyword.toLowerCase())).toList(); выдает ошибку: 'Тип возврата' dynamic 'не является' bool ', как того требует контекст закрытия.' Вот код:

  final List<Map<String, dynamic>> _allUsers = [
    {"id": 1, "name": "Andy", "type": "student"},
    {"id": 2, "name": "Aragon", "type": "student"},
    {"id": 3, "name": "Bob", "type": "student"},
    {"id": 4, "name": "Barbara", "type": "teacher"},
    {"id": 5, "name": "Candy", "type": 'student'},
  ];
  void _runFilter(String enteredKeyword) {
    List<Map<String, dynamic>> results = [];
    if (enteredKeyword.isEmpty) {
      results = _allUsers;
    } else {
      results = _allUsers.where((user) => user["name"].toLowerCase().contains(enteredKeyword.toLowerCase())).toList();
    }
  }

Когда я пытаюсь запустить этот код в dartpad.dev, он работает, но в Android Studio - нет.


  • Вы уверены, что получили ошибку в той же строке? Это работает для меня. 26.06.2021

Ответы:


1

Попробуйте добавить приведение, когда получите значение из карты. Прямо сейчас типом является dynamic (потому что карта была объявлена ​​таким образом), что означает, что безопасность типа отброшена:

  void _runFilter(String enteredKeyword) {
    List<Map<String, dynamic>> results = [];
    if (enteredKeyword.isEmpty) {
      results = _allUsers;
    } else {
      results = _allUsers
          .where((user) => (user["name"] as String)
              .toLowerCase()
              .contains(enteredKeyword.toLowerCase()))
          .toList();
    }
  }
26.06.2021
Новые материалы

Решения DBA Metrix
DBA Metrix Solutions предоставляет удаленного администратора базы данных (DBA), который несет ответственность за внедрение, обслуживание, настройку, восстановление базы данных, а также другие..

Начало работы с Блум
Обзор и Codelab для генерации текста с помощью Bloom Оглавление Что такое Блум? Некоторые предостережения Настройка среды Скачивание предварительно обученного токенизатора и модели..

Создание кнопочного меню с использованием HTML, CSS и JavaScript
Вы будете создавать кнопочное меню, которое имеет состояние наведения, а также позволяет вам выбирать кнопку при нажатии на нее. Финальный проект можно увидеть в этом Codepen . Шаг 1..

Внедрите OAuth в свои веб-приложения для повышения безопасности
OAuth — это широко распространенный стандарт авторизации, который позволяет приложениям получать доступ к ресурсам от имени пользователя, не раскрывая его пароль. Это позволяет пользователям..

Классы в JavaScript
class является образцом java Script Object. Конструкция «class» позволяет определять классы на основе прототипов с чистым, красивым синтаксисом. // define class Human class Human {..

Как свинг-трейдеры могут использовать ИИ для больших выигрышей
По мере того как все больше и больше профессиональных трейдеров и активных розничных трейдеров узнают о возможностях, которые предоставляет искусственный интеллект и машинное обучение для улучшения..

Как построить любой стол
Я разработчик программного обеспечения. Я люблю делать вещи и всегда любил. Для меня программирование всегда было способом создавать вещи, используя только компьютер и мое воображение...