#flutter #dart
Вопрос:
Каков наилучший подход к настройке типа snapshot.data
внутри a FutureBuilder
? Например, в приведенном ниже коде я ожидаю, что мое будущее вернет список, но snapshot.data.length нельзя вызвать, так как мой код не знает, что это должен быть список, он знает только, что это объект типа Object?
.
FutureBuilder(
future: locator<UniversityApi>().getUniversities
builder: (context, snapshot) => ListView.builder(
itemBuilder: snapshot.data.length, //this line does not work
),
),
...
Ответ №1:
Вы можете определить тип моментального снимка следующим образом:
FutureBuilder<List<dynamic>>( // replace dynamic with your type
future: locator<UniversityApi>().getUniversities
builder: (context, snapshot) => ListView.builder(
itemBuilder: snapshot.data.length, //this line should work now
),
),
...
Просто будьте осторожны, перед использованием snapshot.data.length
вы должны убедиться, что снимок содержит какие-либо данные:
FutureBuilder<List<dynamic>>( // replace dynamic with your type
future: locator<UniversityApi>().getUniversities
builder: (context, snapshot) {
if (snapshot.hasData) {
return ListView.builder(
itemBuilder: snapshot.data.length,
);
}
return SizedBox(); // Return any placeholder widget
}
),
...