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

Generic parameter 'Success' could not be inferred; Key path value type '_' cannot be converted to contextual type '_'; Cannot find 'Response' in scope

我认为这可能是我的移动 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()
        }
    }

“在范围内找不到 'Response'”行:

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

请帮忙:)

答案是将代码移至另一个文件,稍微更改其结构,现在一切正常!