表单内的选择器不再选择

Picker inside of form no longer selecting

我在表单中有一个选择器。以前它可以正确选择项目,但是,在更改代码以解决另一个问题后它不再有效。选择器使用的项目是从核心数据中获取的。我该如何解决这个问题?

@FetchRequest(sortDescriptors: [])
var sources: FetchedResults<Source>
@State private var selectedSource = 0

这是我用于选择器的代码。

Picker(selection: $selectedSource, label: Text("Source")) {
    ForEach(sources, id: \.self) { source in
        Text(source.name!)
            .tag(source)
    }
}

这是一个 link 问题的视频。 Video

您在 Picker(selection:) 中提供的类型(当前为 Int -- selectedSource)需要与您在 tag() 中提供的类型相同,目前是 Source.

例如,您可以使用 Source(我假设它有一个)的 ID 作为您的 selectedSource,然后在您的 tag()