SwiftUI选择器未更新值

SwiftUI选择器未更新值,swiftui,Swiftui,我有一个选择类别的选择器。每个类别都有一个作为字符串的id属性。这将显示正确的初始值。但是,如果打开选择器并选择一个新值,categoryId将永远不会更新 @EnvironmentObject var data: TransactionData @State var categoryId: String = "" var body: some View { Form { Section { Picker(selection: $category

我有一个选择类别的选择器。每个类别都有一个作为字符串的id属性。这将显示正确的初始值。但是,如果打开选择器并选择一个新值,
categoryId
将永远不会更新

@EnvironmentObject var data: TransactionData
@State var categoryId: String = ""

var body: some View {
    Form {
        Section {
            Picker(selection: $categoryId, label: Text("Category")) {
                ForEach(data.categories) { category in
                    Text(category.name).tag(category.id)
                }
            }
        }
    }
}

标记
方法用于视图,而不是您希望选取器显示的值。请参见此处:。另外,请尝试在
ForEach
中指定一个
id
作为
类别。id
。我相信Text()被视为一个视图,这就是文档所说的方法。我也有可识别的类别设置,所以ForEach是不必要的。我还想指出,这显示了正确的初始值。