ScrollView does not update after loading data. ScrollView successfully displays data only after I switch to another screen and come back. https://youtu.be/0q3R6LaKbnE
For asynchronous image loading, use: https://github.com/dmytro-anokhin/url-image
import Combine
import SwiftUI
class NewsAPI: ObservableObject {
@Published var articles: Articles = [Article]()
init() {
guard let url: URL = URL(string: "https://newsapi.org/v2/top-headlines?country=ru&apiKey=376a97643c6c4633afe57427b71e8ebd") else { return }
URLSession.shared.dataTask(with: url) { (data, response, error) in
do {
guard let json = data else { return }
let welcome = try JSONDecoder().decode(ModelNews.self, from: json)
DispatchQueue.main.async {
self.articles = welcome.articles!
}
}
catch {
print(error)
}
}
.resume()
}
}
struct CardList: View {
@ObservedObject var newsAPI: NewsAPI = NewsAPI()
var body: some View {
NavigationView {
ScrollView {
VStack(alignment: .center) {
ForEach(self.newsAPI.articles, id: \.self) { i in
CardView(article: i)