如何在 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
我目前正在 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