小编Dan*_*ner的帖子

SwiftUI @State var初始化问题

我想通过a @Stateinit()方法在SwiftUI中初始化var 的值Struct,以便它可以从准备好的字典中获取适当的文本以用于TextField中的操作。源代码如下所示:

struct StateFromOutside: View {
    let list = [
        "a": "Letter A",
        "b": "Letter B",
        // ...
    ]
    @State var fullText: String = ""

    init(letter: String) {
        self.fullText = list[letter]!
    }

    var body: some View {
        TextField($fullText)
    }
}
Run Code Online (Sandbox Code Playgroud)

不幸的是执行失败并显示错误 Thread 1: Fatal error: Accessing State<String> outside View.body

我该如何解决?提前非常感谢您!

swiftui

11
推荐指数
3
解决办法
1118
查看次数

SwiftUI ForEach字典发现问题

使用下面的给定代码,我尝试遍历字典wordList,但由于问题而失败Instance method 'identified(by:)' requires that '(key: Int, value: [String : String])' conform to 'Hashable'

因此,我的猜测是我要么必须Hashable以某种方式将协议应用于Int字典的,要么可能存在另一种解决方案,该解决方案涉及.identified(by:)

非常感谢你的帮助!

struct ContentView: View {
    @State var wordOrder = ["DE", "EN"]

    let wordList: [Int: [String: String]] = [
        0: [
            "DE": "Hallo Welt",
            "EN": "hello world"
        ],
        1: [
            "DE": "Tschüss",
            "EN": "goodbye"
        ],
        2: [
            "DE": "vielleicht",
            "EN": "maybe"
        ]
    ]

    var body: some View {
        Group {
            NavigationView {
                List() {
                    ForEach(wordList.identified(by: \.self)) { …
Run Code Online (Sandbox Code Playgroud)

swiftui

3
推荐指数
1
解决办法
1287
查看次数

标签 统计

swiftui ×2