繁体   English   中英

在 SwiftUI 中的 forEach 期间将文本字段输入添加到数组

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM