SwiftUi множественный foreach - PullRequest
1 голос
/ 28 октября 2019

У меня такая ситуация в новом SwiftUI, у меня проблема с созданием двойного foreach

struct LineupMod {
    var id: Int = 0
    var mod: Int = 0
    var name: [String] = []
}

Это, на мой взгляд,

@ObservedObject var lineupMod = LineupViewModel()
-
-
-
                           ForEach(self.lineupMod.lineupMod, id: \.self) { module in
                                HStack(alignment: .center, spacing: 20, content: {
                                    ForEach(module.name) { name in
                                        Group {
                                            Spacer()
                                            VStack {
                                                Image("Wanda_Nara")
                                                    .resizable()
                                                    .clipShape(Circle())
                                                    .shadow(radius: 10)
                                                    .overlay(Circle().stroke(Color.red, lineWidth: 1))
                                                    .frame(width: 50, height: 50)
                                                Text(name)
                                                    .foregroundColor(Color.white)
                                            }
                                            Spacer()
                                        }
                                    }
                                })
                            }               

Почему код не собирается? В LineupViewModel я получаю данные с сервера, спасибо

1 Ответ

0 голосов
/ 28 октября 2019

попробуйте сделать это. Всегда интересно, что идентификатор имеет тип UUID.

struct LineupMod: Hashable {
    var id: UUID = UUID()
    var mod: Int = 0
    var name: [String] = []

    public func hash(into hasher: inout Hasher) {
        hasher.combine(id)
    }
}
ForEach(lineupMod.lineupMod, id: \.self) { module in
            HStack(alignment: .center, spacing: 20, content: {
                ForEach(module.name, id: \.self) { name in
                    Group {
                        Spacer()
                        VStack {
                            Image("Wanda_Nara")
                                .resizable()
                                .clipShape(Circle())
                                .shadow(radius: 10)
                                .overlay(Circle().stroke(Color.red, lineWidth: 1))
                                .frame(width: 50, height: 50)
                            Text(name)
                                .foregroundColor(Color.white)
                        }
                        Spacer()
                    }
                }
            })
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...