![](/img/trans.png)
[英]Why can't other pods connect to Cloud SQL through Kubernetes proxy and service when portforwarding to the proxy and the service works?
[英]Why can't I send a struct to the next view modally but works well through Navigationlink (SwiftUI)
所以我正在创建一个基本的 Firebase 注册并使用 SwiftUI 登录应用程序。在注册页面中,我创建了一个用户并通过 Firebase 对其进行了身份验证,我得到的响应是 email 地址、用户 UID、全名。
然后我从中创建一个 User 结构,然后将该结构发送到HomeView
。 这是我的做法:
首先我声明这个用户结构:
@State var user = User()
然后当你点击注册按钮时:
func handleRegisterTapped() {
if self.password != confirmPassword {
print("Error - Passwords don't match")
self.showAlert = true
return
}
print(self.email, self.password)
Auth.auth().createUser(withEmail: self.email, password: self.password) { result, error in
let id = result?.user.uid
self.user = User(id: id, fullName: self.fullName, email: self.email)
do {
let _ = try db.collection("Users").addDocument(from: user)
self.showHomeScreen = true
}catch {
print(error)
}
}
}
因此,此代码使用 email 地址和密码创建一个新用户,并创建一个User
object 并将其也保存在 Firestore 用户集合中。
然后它触发showHomeScreen
boolean 触发fullScreenCover
模态:
.fullScreenCover(isPresented: $showHomeScreen, content: {
HomeView(user: self.user)
})
这是主HomeView
:
struct HomeView: View {
@State var user: User
var body: some View {
Text("Welcome, \(user.fullName ?? "")")
}
}
然而,新视图不显示全名,仅显示“欢迎”,仅此而已。 如果我对 NavigationLink 执行相同的方法,它会一直有效。 但不是模态视图。 我该如何处理。 任何帮助将不胜感激。 谢谢
您可以尝试将绑定传递给 HomeView,如下所示:
struct HomeView: View {
@Binding var user: User // <--- here
var body: some View {
Text("Welcome, \(user.fullName ?? "")")
}
}
并打电话
.fullScreenCover(isPresented: $showHomeScreen, content: {
HomeView(user: self.$user) // <--- here
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.