Лучше всего использовать .onAppear
и рассчитать, пора ли получить вашу следующую страницу.Это надуманный пример, потому что обычно вы попадаете в сеть или на диск, который намного медленнее, чем этот, но он даст вам представление.Настройте getNextPageIfNecessary(_:)
для вашего конкретного случая использования.
@State var rows: [String] = Array(repeating: "Item", count: 20)
var body: some View {
List(0..<rows.count, id: \.self) { index in
Text(verbatim: self.rows[index])
.onAppear {
self.getNextPageIfNecessary(encounteredIndex: index)
}
}
}
private func getNextPageIfNecessary(encounteredIndex: Int) {
guard encounteredIndex == rows.count - 1 else { return }
rows.append(contentsOf: Array(repeating: "Item", count: 20))
}