【发布时间】:2019-11-21 21:01:15
【问题描述】:
我在使用EnvironmentObject 并在详细视图中将变量绑定到我的数据时遇到了一些麻烦。我相信真相的来源是@EnvironmentObject var userData: UserData。在列表视图中点击一行时,此详细视图应显示所选项目,您应该能够通过DatePicker 修改weight.weightdate。应用程序编译,当我使用下面的代码时,但当我尝试使用 DatePicker(selection: $userData.weights[weightIndex].day, in: ...Date(), displayedComponents: [.date,.hourAndMinute]) { 之类的东西来绑定我的数据时,我收到以下错误:
Type 'Any' has no member 'date'
Type 'Any' has no member 'hourAndMinute'
如果我添加 DatePickerComponents.date,我会在 Text("Date") 行得到 Type of expression is ambiguous without more context。
struct Weight: Hashable, Codable, Identifiable {
var id: Int
var weightdate: Date
var weight: Float = 0
...
}
struct WeightDetail: View {
@EnvironmentObject var userData: UserData
var weight: Weight
var weightIndex: Int {
userData.weights.firstIndex(where: { $0.id == weight.id })!
}
@State private var selectedDay = Date()
var body: some View {
Form {
Section {
//DatePicker(selection: $userData.weights[weightIndex].day, in: ...Date(), displayedComponents: [.date,.hourAndMinute]) {
//ERROR Type 'Any' has no member 'date'
//ERROR Type 'Any' has no member 'hourAndMinute'
DatePicker(selection: $selectedDay, in: ...Date(), displayedComponents: [.date,.hourAndMinute]) {
Text("Date")
//also works: Text("\(weight.weightdate)")
}
}
...
【问题讨论】: