gpt4 book ai didi

swiftui - ScrollView 未更新

转载 作者:行者123 更新时间:2023-12-02 14:46:55 25 4
gpt4 key购买 nike

ScrollView 在加载数据后不会更新。 ScrollView 只有在我切换到另一个屏幕并返回后才能成功显示数据。 https://youtu.be/0q3R6LaKbnE

对于异步图像加载,使用: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)

最佳答案

我解决了这个问题。更新工作正常,问题是别的!我已经努力了几个小时来解决这个问题,并且找到了解决方案。

如果您提供来自相同类型或 View 的默认值(仅显示),当数组为空时,一切正常。看起来 View 的大小不对,如果数组为空,那么您什么也看不到,因为大小不会随着内容的更新而改变。

简而言之:提供默认值或替代 View ,如果数组为空,则显示该 View 。

希望对您有所帮助!

关于swiftui - ScrollView 未更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58586129/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com