我有一个非常恼人的问题,我的观点和领域数据库.所以我有一个非常简单的代码,我有一个显示我的领域数据库中存储的名称的视图.这些名称是通过导航链接导航到另一个视图来存储的.
在此视图中,名称写入文本字段并存储到数据库中.当我返回到我的原始视图时,名字没有显示,所以我必须重新呈现我的模拟器,以便它更新和显示最近添加的名字.
100
这是我的代码:
100
class Name: Object, ObjectKeyIdentifiable {
@Persisted(primaryKey: true) var id: ObjectId
@Persisted var name = ""
}
struct playground: View {
@StateObject var nameManager = NameManager()
@State var myName = ""
@State var showSheet = false
var body: some View {
NavigationView{
VStack{
NavigationLink(destination: dataView(myName: $myName)) {
Text("go to another view to write name ")
}
ForEach(nameManager.names, id: \.id) {name in
Text("\(name.name)")
.onTapGesture {
nameManager.deleteName(id: name.id)
}
}
}.sheet(isPresented: $showSheet) {
dataView(myName: $myName)
}
}
}
}
100
struct dataView: View {
@Binding var myName : String
@StateObject var nameManager = NameManager()
var body: some View {
VStack{
TextField("Enter username...", text: $myName)
Button("store to DB") {
nameManager.addName(name: myName)
myName = ""
}
}
}
}