如何解决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 举报,一经查实,本站将立刻删除。