You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 04:15:21