В SwiftUI, как я могу добавить прокрутку, чтобы обновить sh функциональность в список? - PullRequest
2 голосов
/ 07 февраля 2020

Если у меня есть список SwiftUI, который получает свои значения с моего сервера через вызов API, например:

var body: some View {
    List {
        ForEach(viewModel.items) { item in
            ListItemsView(item: item)
        }
    }
    .onAppear {
        self.viewModel.getAllItems()
    }       
}

Массив элементов хранится в @Published var items в viewModel

Забавный c .getAllItems() вызывает серверный API, который возвращает массив элементов и сохраняет их в @Published var items

Как добавить функцию, чтобы провести пальцем вниз это List и снова вызовите .getAllItems(), чтобы обновить items новыми значениями и теоретически повторно отобразить List?

Или есть ли гораздо лучший способ сделать это, что я не вижу?

Ответы [ 2 ]

0 голосов
/ 07 февраля 2020

Если вы хотите получить больше результатов после достижения конца списка, вы можете реализовать это решение: Для ListItemView добавьте .onAppear() и проверьте свой последний элемент в viewModel с элементом списка, если они равны, вы можете вызвать ваш getAllItems () еще раз и получить ваши данные. При обновлении элементов в modelView список обновляется автоматически

0 голосов
/ 07 февраля 2020

Вот реализация, которая добавляет надлежащий UIRefreshControl к табличному представлению списка SwiftUI: https://github.com/timbersoftware/SwiftUIRefresh

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...