Arrays 在SwiftUI中的forEach期间向数组添加textfield输入
我是Swift/SwiftUI新手,尝试在foreach期间将textfield值存储在数组中。但是,我遇到了一条线程1:致命错误:索引超出范围的消息。存储值是发生在视图(视图模型)之外,还是可以在视图内部完成Arrays 在SwiftUI中的forEach期间向数组添加textfield输入,arrays,swift,swiftui,Arrays,Swift,Swiftui,我是Swift/SwiftUI新手,尝试在foreach期间将textfield值存储在数组中。但是,我遇到了一条线程1:致命错误:索引超出范围的消息。存储值是发生在视图(视图模型)之外,还是可以在视图内部完成 struct OrderView: View { @Binding var groupsize: Int @State var nameArray = [String]() var body: some View {
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{
@绑定变量groupsize:Int
@状态变量nameArray=[String]()
var body:一些观点{
VStack{
ForEach(0..
考虑到评论中所有的好建议,您可以尝试以下方法:
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)
}
})
}
}
struct OrderView:View{
@绑定变量groupsize:Int
@状态变量nameArray=[String]()
var body:一些观点{
VStack{
如果nameArray.count>0{
ForEach(0..0{
nameArray=[String](重复:“”,计数:groupsize)
}
})
}
}
为什么不将groupsize
替换为nameArray.count
?这是因为我要存储的值的数量取决于来自上一个视图的groupsize
变量。groupsize
nameArray.count
这是每个(0..