FutureBuilder содержит предыдущий элемент результата поиска

#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; -объявление