更新 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(....)
应该可以。
我的根 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(....)
应该可以。