如何在 swift ui 中制作持续更新的选择器?

How do I make a continuously updated picker in swift ui?

我目前正在 swift ui 开发应用程序。在应用程序中有添加组的功能,在主屏幕上您可以选择其中一个组。我的问题是,当我在组菜单中添加一个新组时,我制作的选择器的一个选项有效,但它不会更新:

                        Picker("Please choose a color", selection: $selectedGroup) {
                            ForEach(0 ..< groups.count) {
                                Text(groups[[=12=]].name).tag([=12=])
                                        }
                                    }

我接下来尝试的另一件事 post 根本不起作用:

                        Picker("select a group", selection: $selectedGroup) {
                                        ForEach(groups, id: \.self) {
                                            Text(groups[[=13=]].name).tag([=13=])
                                        }
                                    }

这是我用于“组”的数组和结构:

struct Group: Identifiable{
    let id =  UUID()
    var name: String
    var members: Array<Member>
   
}


// AND:

var groups : [Group] = [Group = Group(name: "sample", members: [Member(name: "sample guy", sex: "m")])]

尝试这样的事情:

struct Group: Identifiable, Hashable {
    let id = UUID()
    var name: String
    var members: [Member]
}

struct ContentView: View {
    @State var selectedGroup: Group?
    @State var groups: [Group] = [Group(name: "sample", members: [Member(name: "sample guy", sex: "m")])]

    var body: some View {
        Button(action: {
            // add a new group with a random name to `groups`
            groups.append(Group(name: UUID().uuidString, members: []))
        }) {
            Text("Add new group")
        }
        Picker("select a group", selection: $selectedGroup) {
            ForEach(groups) { group in
                Text(group.name).tag(group)
            }
        }
    }
}

我建议你 再次阅读 Apple 的 SwiftUI 教程 https://developer.apple.com/tutorials/swiftui