core-data - 如何获取 coreData 属性并通过 navigationLink 将其传递给另一个视图
问题描述
我想列出 coreData 对象,然后将它的属性传递给另一个视图。但是错误显示我无法获取 coreData 对象的属性,以便通过 NavigationLink 将其传递给 AnotherView。
struct StartView: View {
@Environment(\.managedObjectContext) var moc
@FetchRequest(entity: User.entity(), sortDescriptors: []) var users: FetchedResults<User>
var body: some View {
List {
ForEach(self.users, id: \.id) { user in
NavigationLink(destination: AnotherView(userID: user.id)) { // Value of type 'NSManagedObject' has no member 'id'
Text(user.name ?? "unknown name") // Value of type 'NSManagedObject' has no member 'name'
}
}
}
}
}
struct AnotherView: View {
var userID: String
var body: some View {
Text("The userID is \(userID)")
}
}
解决方案
我尝试了解决它。
struct StartView: View {
@Environment(\.managedObjectContext) var moc
@FetchRequest(entity: User.entity(), sortDescriptors: []) var users: FetchedResults<User>
@State private var userID: String = ""
var body: some View {
List {
ForEach(self.users, id: \.id) { user in
NavigationLink(destination: AnotherView(userID: userID)) {
Button(action: {
self.userID = user.id!.uuidString
}) {
Text(user.name ?? "unknown name")
}
}
}
}
}
}
推荐阅读
- algorithm - 不使用递归的动态编程?
- html - 表格中的文本格式
- c# - 使用 SqlCommand.ExecuteNonQuery() 创建 #temp 表
- here-api - HERE 地图未加载(Javascript 3.1)
- angular - 错误 TS2554:预期 2 个参数,但得到 1
- java - 数组“ggg”是如何初始化的,什么是 .split()?
- javascript - 基于我是否关注用户的 MongoDB 搜索提要
- firebase - Cloud Firestore Firebase Collection ref 上的 IN 查询是否有 Flutter/Dart 等效项?
- excel - 循环以跨多个工作表向表中插入行
- java - 休眠错误访问字段,映射问题