Я добавляю панель поиска в свое приложение и пытаюсь запросить объект по имени атрибута, но не могу заставить его работать.
РЕДАКТИРОВАТЬ 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 '
Я не уверен, почему