0

我想使用新的 App Protocol @main --> NO Scene 或 AppDelegate 在 SwiftUI 中设置 EnvironmentObject。我是否可以在我的内容视图中设置 EnvironmentsObjects,而不是我的 @main .swift ?如果是的话?为什么我不能在我的 NavigationLink 中传递环境对象(如您所见),而 Swift 想让我手动输入数据,我想传递给 LoadingPage()。

十分感谢 !

import SwiftUI

struct ContentView: View {
    //MARK: Properties
    

    
    var body: some View {
        let user = UserData()
        //MARK: BODY
        TextPage().environmentObject(user)

在我想在 NavLink 中调用 LoadingPage() 的 TextPage() 上

import SwiftUI
import Combine

struct TextPage: View {
    
    //MARK: Properties
    @EnvironmentObject var user : UserData
    
    @ObservedObject var post = Anfrage()
    
    @State var checkData = false // checkInput Var

    var body: some View {
        
        //MARK: Body
        NavigationView{
        
            VStack (alignment: .center, spacing: 30) {
            
   
            //NAV LINK
            NavigationLink(                                 
                destination: LoadingPage().environmentObject(user), isActive: $checkData) { EmptyView() }
                
```
And this is what Swift suggests me to correct:
LoadingPage(user: <#Environment<UserData>#>).environmentObject(user)
4

1 回答 1

0

StateObject在你的中使用 aContentView然后将其作为EnvironmentObject

@StateObject var user : UserData = UserData()

顺便说一句,如果您init在其中的变量,body每当主体被任何带有包装器的属性重新加载时,它们都会重新初始化。

于 2021-02-09T13:09:51.890 回答