Я пытаюсь изучить SwiftUI и создаю поисковое приложение mov ie с API-интерфейсом базы данных mov ie
Я хотел бы получить новые данные, как только прокрутка переместится в конец списка. Я нашел возможное решение для SO, используя ForEach внутри Списка и проверяя, когда список достигает последнего элемента, а затем выполняя вызов onAppear ().
В SwiftUI, где находятся события управления, т.е. scrollViewDidScroll определить нижнюю часть списка данных
Как я могу загрузить новые страницы из поиска после загрузки первой страницы?
Вы можете найти проект здесь, он был слишком велик для публикации https://github.com/aspnet82/MovieSearch
SearchMovieManager -> Выполнить вызов выборки, я использовал Dispatch.main.asyn c
Вот что приложение должно делать
- Извлечение данных из API и отображение первой страницы -> РАБОТА *
- Когда прокрутка списка до последнего элемента делает еще один запрос на выборку на следующей странице для загрузки дополнительных данных -> Это не работает, это работает только для второй страницы запроса. Он всегда отображает одни и те же данные после второго вызова извлечения.
Мне кажется, что проблема в GCD, но я не знаю, как поставить вещи в очередь, чтобы она работала автоматически
ОБНОВЛЕНИЕ: Обходной путь, который я нашел:
List(searchMovieManager.allMovies) { movie in
Text(movie.title)
}
Text("load more").onTapGesture {
fetchNextPage(obs: self.searchMovieManager, page: self.searchMovieManager.pageTofetch)
}
Я думаю, что может быть в качестве решения, он добавляет новую страницу, когда я нажимаю на кнопку, и может также быть хорошим в управлении загрузкой данных?
Спасибо за помощь:)