[英]Adding textfield input to array during forEach in SwiftUI
我是 Swift / SwiftUI 的新手,并尝试在 foreach 期间将文本字段值存储在数组中。 但是我遇到了Thread 1: Fatal error: Index out of range消息。 存储值应该发生在视图(视图模型)之外还是可以在视图内完成?
struct OrderView: View {
@Binding var groupsize: Int
@State var nameArray = [String]()
var body: some View {
VStack {
ForEach(0 ..< groupsize) { index in
TextField("Insert name", text: $nameArray[index])}
}
}
}
听取评论中的所有好建议,您可以尝试以下方法:
struct OrderView: View {
@Binding var groupsize: Int
@State var nameArray = [String]()
var body: some View {
VStack {
if nameArray.count > 0 {
ForEach(0 ..< groupsize) { index in
TextField("Insert name", text: $nameArray[index])}
}
}.onAppear(perform: {
if groupsize > 0 {
nameArray = [String](repeating: "", count: groupsize)
}
})
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.