微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

WidgetKit每次都不加载文本

如何解决WidgetKit每次都不加载文本

我的代码获取带有JSON的变量并将其显示在我的小部件中。 但这仅在某个时间有效。有时它不显示文本,并保持空白。 是什么原因?是.onAppear的问题吗?它会显示文本并同时从json加载吗?

我的观点:

struct MyTeamWidgetEntryView : View {
    
    @Observedobject var networkManager = NetworkManager()
    
    var entry: Provider.Entry

    var body: some View {
        Text(NetworkManager.test)
            .onAppear {
                self.networkManager.fetchData()
            }
        
    }
}

我的JSON处理:

class NetworkManager: ObservableObject {
    
    @Published var posts = [Post]()
    
   static var test = ""
    
    func fetchData() {
        if let url = URL(string: "https://hn.algolia.com/api/v1/search?tags=front_page") {
            let session = URLSession(configuration: .default)
            let task = session.dataTask(with: url) { (data,response,error) in
                if error == nil {
                    let decoder = JSONDecoder()
                    if let safeData = data {
                        do {
                            let decodedFile = try decoder.decode(Results.self,from: safeData)
                            dispatchQueue.main.async {
                                self.posts = decodedFile.hits
                                
                                NetworkManager.test = decodedFile.hits[0].title
                                
                            }
                        } catch {
                            print(error)
                        }
                    }
                }
            }
            task.resume()
        }
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。