【发布时间】:2020-02-13 14:47:45
【问题描述】:
我正在尝试在需要绑定的视图中使用 ForEach 的迭代器变量。
import SwiftUI
struct MyStruct: Identifiable {
public var id = UUID()
var name: String
var repetitions: Int
}
struct ContentView: View {
@State private var mystructs :[MyStruct] = [
MyStruct(name: "John", repetitions: 3),
MyStruct(name: "Mark", repetitions: 9)
]
var body: some View {
List {
ForEach (mystructs) { st in
VStack {
Text("\(st.name)")
TextField("Name", text: self.$mystructs[0].name)
TextField("Name", text: $st.name) // <- Got "Ambiguous reference..." error
}
}
}
}
}
ForEach 迭代器有效,正如 Text 视图对 st.name 的使用所证明的那样。第一个 TextField 演示了绑定到 mystructs 元素的工作。但是,对于第二个 TextField 这是我的真实用例,会导致以下编译器错误:
- Use of unresolved identifier $st
- Ambiguous reference to member of 'subscript'
有什么想法吗?
【问题讨论】:
-
你想做什么?
-
尝试使列表动态化,我可以在其中添加/删除数组元素并同时修改元素。这是一个简化的代码sn-p;在我的代码中,我有一个自定义 View 而不是 TextField 并且需要绑定。