致命错误:找不到当前活动的 Word 容器

问题描述 投票:0回答:1

我正在尝试将数据添加到我的模型“Word”中,当我按下与功能“addWord”连接的按钮时。之后我得到了错误

致命错误:找不到当前活动的 Word 容器

这是我的代码

型号:

import SwiftData

@Model
class Word {
    var title: String
    var response: String
    var translate: String
    
init(title: String, response: String, translate: String) {
    self.title = title
    self.response = response
    self.translate = translate
}
}

模型容器:

import SwiftUI
import SwiftData

@main
struct GPTApp: App {
    var body: some Scene {
        WindowGroup {
            ContentViev()
        }
        .modelContainer(for: Word.self)
    }
}

我如何添加数据并且不会忘记放置模型上下文:

struct ContentViev: View {
    @Environment (\.modelContext) var modelContext

func addword(){
    let word = Word(title: "123", response: "123", translate: "123")
    modelContext.insert(word)
}

如果有帮助,这个错误将我扔到这里enter image description here

swift swiftui swift-data
1个回答
0
投票

您还需要在 GPTApp 中声明

ModelContainer
,然后将其注入到 WindowGroup 中,如下所示:

@main
struct GPTApp: App {
    let container: ModelContainer

    init() {
        do {
            container = try ModelContainer(for: Word.self)
        } catch {
            fatalError("Could not initialize ModelContainer")
        }
    }
    
    var body: some Scene {
        WindowGroup {
            ...
        }
        .modelContainer(container)
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.