我试图将 StateObject 用户传递给authenticationHelper,但我不能,因为 IDE 说“在初始化所有存储的属性之前使用 self”,即使它是在结构体的开头初始化的。我考虑过将 user 的初始化移至 init() 但同样,我不能,因为它是一个仅获取的属性,并且必须立即初始化。有解决办法吗?
@main
struct Test: App {
@StateObject var user: User = User()
var authenticationHelper: AuthenticationHelper
init(){
self.authenticationHelper = AuthenticationHelper(user: user)
}
var body: some Scene {
WindowGroup {
LoginView(user: user)
}
}
}
使用计算属性
struct Test: App {
@StateObject var user: User = User()
var authenticationHelper: AuthenticationHelper {
return AuthenticationHelper(user: user)
}
init() {
}
}
你也可以这样使用
struct Test: App {
@StateObject var user: User
var authenticationHelper: AuthenticationHelper
init() {
let user = User()
self._user = StateObject(wrappedValue: user)
self.authenticationHelper = AuthenticationHelper(user: user)
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)