首页 > 解决方案 > 将元素附加到数组后,它应该显示更多元素

问题描述

前后都是这个样子。。

我有一个 ForEach 循环,当我单击卡片时,它会在数组中附加一个新元素,然后它应该显示 2 张卡片。但是还有一张卡。(但我附加了新的卡片元素)那我该怎么办?

struct TimelineFromUserView: View {
    
    var card: [Card] = cardData
    
    var body: some View {
        
        VStack {
            HStack {
                Text("History").bold()
                    .font(.largeTitle)
                    .padding(.top, 20)
                    .padding(.leading, 20)
                Spacer()
                
            }
            Divider()
            ScrollView(.vertical, showsIndicators: false) {
                
                VStack(spacing: 30) {
                    ForEach(card) { item in
                        CardForTimeline(card: item)
                            .onTapGesture {
                                    print("juhuu")
                                    cardData.append(Card(number: 2, start: "01.10.2021", end: "20.10.2021", days: 19, success: false))
                                    print(cardData)
                            }
                        .padding()
                    }
                }
                .padding(.top, 10)
            }
        }
    }
}

struct Card: Identifiable{
    
    var id = UUID()
    var number: Int
    var start: String
    var end: String
    var days: Int
    var success: Bool
}

var cardData: [Card] = [
    Card(number: 1 ,start: "05.06.2020", end: "15.06.2020", days: 10, success: true)
]

标签: arraysswiftswiftui

解决方案


card您只需将数组的副本传递cardData到,ForEach但如果我正确理解您的代码片段,它应该是原始数组cardData

如果这不是问题,那么发布更多代码会有所帮助。


推荐阅读