更新 ViewModel 中的 EnvironmentObject 值,然后在视图中反映更新

Update EnvironmentObject value in ViewModel and then reflect the update in a View

我的根 ContentView:

中有一个带有 属性 auth 的环境对象
class User: ObservableObject {
    @Published var auth = false
}

我的目标是在 AuthViewModel:

的一个函数内部将 auth 更新为 true
class AuthViewModel: ObservableObject {
    
    
    var user: User = User() 

    
    func verifyCode(phoneNumber: String, secret: String) {
        
                self.user.auth = true
                
        }.task.resume()
        
    }
}

然后在我的 AuthView 中,我想在调用函数 verifyCode 时打印更改:


 @EnvironmentObject var user: User

 var body: some View {
        
        print("AUTH SETTINGS -------->",user.auth)
        
        
        return VStack() { ........
            

如果您的 class User 不包含任何进一步的逻辑,最好将其声明为 struct 并让它存在于您的 AuthViewModel 在视图中作为 @State 变量。您的数据应该只有一个真实来源。

关于打印问题:

let _ = print(....)

应该可以。