SwiftUI ForEach按钮制作1个大按钮



我试图在滚动视图中列出按钮的多个单元格但是当我这样做时,它会列出它们当我点击其中任何一个时它会点击所有的单元格看起来就像一个带有4个不同单元格的大按钮

ZStack{
Color("Background")
VStack{
ScrollView(showsIndicators: false){
ForEach(userVM.user?.chats ?? [ChatModel()]){ chat in
Button(action:{
print(chat.name ?? " ")
},label:{
Text("(chat.name ?? " ")")
})
}
}
}
}

ForEach循环中,您要确保每个ChatModel是唯一的。通常,您可以通过在ChatModel中包含id并使其可识别来做到这一点。

因此,如果您在ChatModel中没有id,请尝试:

ForEach(userVM.user?.chats ?? [ChatModel()], id: .self){ chat in ...}

或this,如果ChatModel有id:

ForEach(userVM.user?.chats ?? [ChatModel()], id: .id){ chat in ...}

最新更新