我有城市列表
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 的初始化器中。