我如何从singleMember检查金额是否为空,我需要有这样的示例:
struct SingleMember: View {
var memberItem: MemberInfo
@State var amount: String = ""
var body: some View {
VStack(alignment:.leading){
Divider()
HStack{
Image("avatar")
VStack(alignment:.leading){
Text("\(memberItem.firstName ?? "Unknown")")
.font(.custom("Ubuntu-Regular", size:15))
Text("\(memberItem.phoneNumber ?? "Unknown")")
.font(.custom("Ubuntu-Regular", size:12))
.foregroundColor(.gray)
}
Spacer()
HStack{
TextField("Amount", text: $amount)
.frame(width:50)
.background(.clear)
Image(systemName: "square.and.pencil")
}.font(.custom("Ubuntu-Regular", size: 12))
.foregroundColor(Color.gray)
}
}
}
}
另一个观点是:
ForEach(memberInfo, id:\.self){ item in
SingleMember(memberItem: item)
}
我想要的是检查SingleItem amount是否不为空,如果不为空,则添加到数组item.id,例如item.amount。
我有一个在SingleMember上使用@Binding的想法,但这不起作用,因为这会更新所有TextFields,但我希望每个示例都有自己的数量。
2条答案
按热度按时间2w3rbyxf1#
你可以尝试在调用
SingleMember
视图时使用Bindings,并使用onSubmit{...}
检查值,例如:在这里你声明
或者直接在
TextField
中使用memberItem.amount
,例如:dfddblmv2#
如果您的数据结构中没有
amount
,但您仍然需要为数据示例的每个项分配amount
,那么您应该以某种方式将amount
数据附加到它。你可以使用额外的数组,但简单地 Package 你的值可能会更干净。
您不想更改视图,以便为其创建自定义构造函数。您没有提供代码,但带有
ForEach
的代码看起来像这样:是的,在你的另一个视图中,金额现在是一个约束力,如下所示: