SwiftUI:使用ForEach遍历模型数组却显示整组内容的问题求助
SwiftUI ForEach遍历数组显示异常问题
此前我曾发布过类似代码,当时的问题源于对ScrollView和List的理解不足。在同一个项目中,我尝试使用ForEach遍历来自struct模型数据的pickupItems数组,但输出结果是整个数组内容挤在一起,而非单个条目分行显示。
模型数据定义
struct OrderInfo: Codable, Identifiable, Hashable { var id: Int var orderNumber: String var activeOrderStatus: Bool var pickupSection: Int var pickupStand: String var pickupItems: [String] }
视图代码
struct CompletedOrderPickUp: View { var completedOrder: OrderInfo var body: some View { ScrollView { HStack { Text("Section") Spacer() Text("\(completedOrder.pickupSection)") } .pickUpDetailsTitleModifier() HStack { Text("Stand Name") Spacer() Text(completedOrder.pickupStand) } .pickUpDetailsTitleModifier() HStack { Text("Order Items") Spacer() } .pickUpDetailsTitleModifier() // 三种ForEach尝试写法 ForEach(completedOrder.pickupItems, id: \.self) { Text("\($0)") } ForEach(0..<completedOrder.pickupItems.count, id: \.self) { items in Text(self.completedOrder.pickupItems[items]) } ForEach(completedOrder.pickupItems.indices) { Text(self.completedOrder.pickupItems[$0]) } } } }
效果对比
- 当前效果:所有pickupItems数组内容在同一行显示,没有按单个条目拆分。
- 期望效果:每个数组条目单独分行显示,类似硬编码逐条添加Text的效果。
我查阅了大量关于数组和ForEach的文章、教程,但都无法解释此问题,想请教我遗漏了什么,或提供相关参考方向?
内容的提问来源于stack exchange,提问作者Pedro Cerrano
相关产品推荐
相关产品推荐

