SwiftUI中的UITableViewDataSourceRefetch
在UIKit中,我们有SwiftUI中的UITableViewDataSourceRefetch,swiftui,Swiftui,在UIKit中,我们有UITableViewDataSourcePrefetching() 我想在SwiftUI中做一些类似的事情,以显示大量数据,其中所有数据不能同时存储在内存中 我提出了一个解决方案,其中一个不可见的矩形有一个.onAppear回调,用于处理加载更多数据。问题是,这使得体验非常缓慢,因为数据实际上不是预取的,而是只有在到达表中的某个点时才加载 struct ContentView:View{ @ObjectBinding变量元素:[Int] var body:一些观点{ Fo
UITableViewDataSourcePrefetching
()
我想在SwiftUI中做一些类似的事情,以显示大量数据,其中所有数据不能同时存储在内存中
我提出了一个解决方案,其中一个不可见的矩形有一个.onAppear
回调,用于处理加载更多数据。问题是,这使得体验非常缓慢,因为数据实际上不是预取的,而是只有在到达表中的某个点时才加载
struct ContentView:View{
@ObjectBinding变量元素:[Int]
var body:一些观点{
ForEach(elements.identified(by:\.self)){中的元素
文本(“\(元素)”)
}
矩形(){
//添加更多数据
}
}
}
我希望能够在ForEach
创建的早期元素上添加此.onAppear
事件,以便在到达当前数据末尾之前实际获取数据
我想到的另一种选择是创建一个自定义集合,如果访问最后一个标记之一,它在其下标函数中加载更多数据。该解决方案的问题是,SwiftUI在最初加载
视图时访问所有标记。您可以尝试在ForEach中使用索引,如下所示
ForEach(0..<store.repos.count) { index in
if (self.store.repos.count - index < 10) {
RepoRow(repo: self.store.repos[index])
.onAppear(perform: self.fetchNextPage)
} else {
RepoRow(repo: self.store.repos[index])
}
}
ForEach(0。。