swiftui - SwiftUI ForEach Buttons 制作 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
都是唯一的。通常,您通过在您的 id 中包含一个 idChatModel
并使其可识别来做到这一点。
所以试试这个,如果你没有 id ChatModel
:
ForEach(userVM.user?.chats ?? [ChatModel()], id: \.self){ chat in ...}
或者这个,如果ChatModel
有一个ID:
ForEach(userVM.user?.chats ?? [ChatModel()], id: \.id){ chat in ...}
推荐阅读
- c - 使用 ffi 在 dart 中绑定 c 库的过程是什么?
- php - 如何在会话中存储多个表单 $_POST
- php - 如何在php中使用curl发送文件
- javascript - 无法显示正确的位置以显示实时计算结果使用 javascript
- javascript - *ngfor 中的角度分组数组切片
- android - 如何正确设置 JSON 信息 [已解决]
- arrays - VBA如何获取变量的名称,然后将其传递给函数
- python - pandas groupby 添加切片元素
- spring-boot - OpenJDK 64 位服务器 VM 警告:由于启用了 JVMCI,因此强制 TieredStopAtLevel 进行全面优化
- c++ - Directshow:如何更改视频的大小和帧率?