如何使用 SwiftUI 将数组绑定到列表
Posted
技术标签:
【中文标题】如何使用 SwiftUI 将数组绑定到列表【英文标题】:How to bind an array to a list using 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,但我很高兴有人指出。
【问题讨论】:
【参考方案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?以上是关于如何使用 SwiftUI 将数组绑定到列表的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 .reversed() 处理 SwiftUI 列表数组的 .onDelete
在 ForEach 循环中绑定时,如何阻止 SwiftUI TextField 失去焦点?