#flutter #flutter-futurebuilder
#flutter #flutter-futurebuilder
Вопрос:
По какой-то странной причине, после поиска во второй раз, учитывая, что у меня уже есть список с первыми результатами поиска, когда я нажимаю на элемент, он отображает информацию из первого результата поиска. Я не понимаю, почему.
return Expanded(
child: FutureBuilder(
future: showSearchObject,
builder: (context, AsyncSnapshot<AllTVShowList> snapshot) {
if ( !snapshot.hasData){
...
}
else{
....
return Column(
children: [
Expanded(
child: Container(
height: _height,
child: ListView.builder(
scrollDirection: Axis.vertical,
shrinkWrap: true,
itemCount: snapshot.data.showList.length,
itemBuilder: (context, int index) {
print(snapshot.data.showList[index].name);
return ShowCard(show: snapshot.data.showList[index]);
},
),
),
),
],
);
}
}
),
);
Комментарии:
1. Каждый раз, когда вы выполняете поиск, вы должны устанавливать состояние виджета, чтобы FutureBuilder можно было сбросить с помощью нового поискового запроса.
2. Я также заметил, что это происходит только с элементами списка, которые видны, когда я прокручиваю, я вижу, что они обновляются, но первые 3, которые видны, получили содержимое из предыдущего поиска.
3. Как и их инициализация, он не вызывается после сборки buing
4. Хм, ты можешь опубликовать свою
showSearchObject
функцию?5. Future<AllTVShowList> showSearchObject; -объявление