Как сравнивать объекты по имени в Quat Flutter по свойству - PullRequest
0 голосов
/ 13 февраля 2020

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

РЕДАКТИРОВАТЬ 1) Функция Future:

 Widget _buildDiner() {
        return Padding(
            padding: const EdgeInsets.all(8.0),
            child: Column(
                crossAxisAlignment: CrossAxisAlignment.start,
                children: <Widget>[
                  FutureBuilder(
                      future: _setDiner,
                      builder: (context, AsyncSnapshot snapshot) {
                        var diner = snapshot.data;



                        if (snapshot.data == null) {
                          return Center(child: CircularProgressIndicator());
                        } else {
                          var sponsoredDiner = diner
                              .where((e) => e.sponsored == 'Yes')
                              .toList();


                          return Column(
                            children: <Widget>[
                              _makeDiner(sponsoredDiner),
                              _buildCoupon(),
                              _buildVendors()
                            ],
                          );
                        }
                      })
                ]));
      }

Diners =

class Diners {
  String keyword;
  int id;
  String name;
  String sponsored;

  Diners({
    this.keyword,
    this.id,
    this.name,
    this.sponsored
  });

  factory Diners.fromJson(Map<String, dynamic> parsedJson) {
    return Diners(
        keyword: parsedJson['keyword'] as String,
        id: parsedJson['id'],
        name: parsedJson['name'] as String,
        sponsored: parsedJson['sponsored'] as String
    );
  }
}

И я сравниваю два экземпляра Diners (спонсоров и Diners)

Я использую этот запрос, чтобы попытаться сравнить текст, вставленный в строку поиска:

final suggestionList = query.isEmpty
        ? sponsored
        : diners
            .where((p) => p.name.startsWith(query)).toList();

Но я получаю эту ошибку

"тип" (Dynami c) => Dynami c 'не является подтипом типа' (Diner) => bool 'of' test '

Я не уверен, почему

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...