我有一个非常恼人的问题,我的观点和领域数据库.所以我有一个非常简单的代码,我有一个显示我的领域数据库中存储的名称的视图.这些名称是通过导航链接导航到另一个视图来存储的.

在此视图中,名称写入文本字段并存储到数据库中.当我返回到我的原始视图时,名字没有显示,所以我必须重新呈现我的模拟器,以便它更新和显示最近添加的名字.

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 = ""
                
                
            }
        }
        
    }
}

推荐答案

您使用不同的NameManager实例,但应该使用一个实例,如

}.sheet(isPresented: $showSheet) {
    dataView(nameManager: nameManager, myName: $myName) // inject !!

struct dataView: View {
    @Binding var myName : String
    @ObservedObject var nameManager: NameManager   // << external !!

// ...

Ios相关问答推荐

(Flutter)获取图像从图像拾取器保存和加载问题

如何在Android或iPhone上的原生react 中处理其他应用程序通知?

当应用程序被杀死时是否还能获取位置?

如何在 Android 上的 Flutter 应用中录制内部音频?

当目标位于菜单标签内时,matchedGeometryEffect 的行为很奇怪

如何通过点击按钮滚动到 ScrollView 中的特定视图?

Flutter Aging Person 自定义小部件

CoreML 不能并发(多线程)工作?

SwiftUI 中的描边图像边框

使用 Apollo 发布 iOS 应用程序时缺少推送通知权利

FileHandle 不会在 iOS 中释放内存

使用 CIImage 支持的 UIImage 设置 UIImageView 时发生罕见的崩溃

在 UICollectionView 上从右到左对齐

NSFetchedResultsController 由字符串的第一个字母创建的部分

将图像保存到 Documents 目录并检索邮箱附件

是否可以在没有 Mac 的情况下为 iOS 制作 PhoneGap 应用程序?

无法加载从带有标识符的包中的笔尖引用的图像

从 iOS/Android 上的 Web 应用调用本机日期 Select 器

openURL:在 iOS 10 中已弃用

UIGestureRecognizer 阻止子视图处理touch 事件