带有 ObservableObject 的 SwiftUI - 列表具有导航链接,以在滚动时下载它而不是出现



我有城市列表

struct CityListView: View {
@ObservedObject private(set) var citiesViewModel: CitiesViewModel
var body: some View {
LoadingView(isShowing: .constant(citiesViewModel.cities?.isEmpty ?? false)) {
NavigationView {
List(self.citiesViewModel.cities ?? []) { city in
NavigationLink(destination: DetailView(cityName: city.name,
detailCityModel: DetailCityModel(cityId: city.id))) {
  Text(city.name)
}
}
.navigationBarTitle(Text("Cities"), displayMode: .large)
}
}
}
}

当我滚动列表时,DetailCityModel 会初始化并从 API 下载数据。如何下载(或初始化DetailCityModel(在DetailView的外观上,而不是为了显示带有NAvigation链接到DetailView的项目?

你必须在 onAppear(( 中启动 API 调用,而不是在 DetailView 的初始化器中。

最新更新