【问题标题】:How to bind an array to a list using SwiftUI如何使用 SwiftUI 将数组绑定到列表
【发布时间】:2020-03-23 22:56:46
【问题描述】:

我正在尝试将数组绑定到 SwiftUI 中的列表。鉴于我对 SwiftUI 等很陌生,我一直在努力理解如何做到这一点。人。这就是我想要做的:

struct ContentView: View {
    @Binding var text: String
    @Binding var results: [MKLocalSearchCompletion]

    var body: some View {
        VStack {
            MapView()
            MapSearchBar(text: $text, results: $results)
            List($results) { result in
                Text(result.title)
            }
        }
    }
}

目前正在获取 Generic parameter 'SelectionValue' could not be inferred',我明白了,但我似乎无法找到自己的方式......

我还没有在这方面遇到过很棒的 doco,但我很高兴有人指出。

【问题讨论】:

    标签: list binding swiftui


    【解决方案1】:

    results 是一个绑定,因此列表参数中不需要read-write binding。另外,要修复泛型参数,请添加id

    struct ContentView: View {
        @Binding var text: String
        @Binding var results: [MKLocalSearchCompletion]
    
        var body: some View {
            VStack {
                MapView()
                MapSearchBar(text: $text, results: $results)
                List(results, id: \.self) { result in
                    Text(result.title)
                }
            }
        }
    }
    

    【讨论】:

    • 非常感谢。那成功了。将$ 仅用于读写现在对我来说完全有意义。
    • 我也喜欢\.self。我以前没见过。
    • 我有类似的问题,但我不明白解决方案,因为程序看起来与我的情况不同。我在Data 类中有一个名为repository names 的3 个字符串的示例数组。如何将其绑定到新创建的列表@sfung3?
    猜你喜欢
    • 1970-01-01
    • 2011-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-23
    • 2010-10-10
    • 2022-11-20
    • 1970-01-01
    相关资源
    最近更新 更多