无法推断通用参数'Success';键路径值类型 '_' 无法转换为上下文类型"_";在范围内找不到'Response'



我想这可能是我的移动GitHub查询存储库搜索项目的最后一次推送,但我遇到了3个错误,我无法找到如何处理。

代码:

import SwiftUI
import Combine

struct Root: Codable {
let items: [Item]
enum CodingKeys: String, CodingKey {
case items
}
}
struct Item: Identifiable, Codable {
let id: Int
let urlCode: String
let fullName: String
enum CodingKeys: String, CodingKey {
case id
case urlCode = "url"
case fullName = "full_name"
}
}
private final class ContentViewState: ObservableObject {
@Published var isLoading = false
@Published var query = ""
@Published var stuff = [String]()


private var subscription: AnyCancellable?

func fetchRepos(query: String) {
isLoading = true
subscription = Just("test")
.delay(for: 2, scheduler: RunLoop.main)
.sink(receiveValue: {[weak self] (title: String) in
self?.isLoading = false
self?.stuff.append(title)
})
}
}
struct ContentView: View {
@StateObject private var state = ContentViewState()
@State private var items = [Item]()

var body: some View {
VStack {
if state.isLoading {
ProgressView()
} else {
HStack {
TextField("Enter search", text: $state.query)
Button("Search") {
state.fetchRepos(query: state.query)
}
}
List(items, id: .id) { item in
VStack(alignment: .leading) {
Text(item.fullName).font(.headline)
Text(item.urlCode)
}
}.task {
await loadData()
}
}
}
}


func loadData() async {
guard let url = URL(string: "https://api.github.com/search/repositories?q=" + state.query + "&per_page=20") else
{
print("Invalid URL")
return
}

do {

let (data, _) = try await URLSession.shared.data(from: url)

if let decodedResponse = try? JSONDecoder().decode(Root.self, from: data) {
items = decodedResponse.items
}
} catch {
print("Invalid data ")
}
}
}

错误:"未能推断出泛型参数"Success";在线:

TextField("Enter search", text: $state.query)

"键路径值类型">"无法转换为上下文类型">"在线:

await loadData()
}
}

"在作用域"中找不到"响应";在线:

} catch {
print("Invalid data ")
}
}
}

请帮助:(

答案是将代码移到另一个文件,稍微改变一下它的结构,现在一切都很好!

最新更新