带有SwiftUI的NavigationLink:表达式类型不明确,没有更多上下文

时间:2019-11-12 19:20:18

标签: ios swift swiftui navigationview navigationlink

我正在尝试使用我制作的按钮导航到另一个视图。我为其他视图完成了此操作,但是将其应用于下一个视图时,显示错误“表达式类型在没有更多上下文的情况下是模棱两可的”。我从其他人那里了解到,SwiftUI中的错误有时不会出现在正确的行上,而可能发生在其他地方。

这是我编写的与NavigationLink一起工作的代码

for (x,y) in N:
    z = 1
for (x,y) in P:
    z = 0

现在这是我以相同的方式应用它的代码,但是却给了我这个错误。导航链接中的文本没有任何内容,因为我使用的是按钮,所以将其留空。

struct ContentView: View {
    @State private var isActive: Bool = false
    @State private var username: String = ""
    @State private var email: String = ""
    @State private var password: String = ""

    var body: some View {

        NavigationView{
            VStack {
                NavigationLink(destination: signUp(), isActive: self.$isActive) {
                    Text("")
                }

                Image("versLogo")
                    .resizable()
                    .frame(width: 400, height: 400)
                TextField("Username", text: $username)
                TextField("Email", text: $email)
                TextField("Password", text: $password)


                Button(action: {}) {
                    Text("Login")
                }
                Spacer()
                //button for moving to next view
                Button(action: {
                    self.isActive = true
                }) {
                    Text("Don't have an account?")
                }

            }//VStack
        }//nav
    }
}

1 个答案:

答案 0 :(得分:0)

您在NavigationLink内第一行NavigationView中使用了var body而不是struct signUp

所以这个:

var body: some View {
    NavigationLink{
    ,,,
    }//nav
}

应为:

var body: some View {
    NavigationView{
    ,,,
    }//nav
}

NavigationLink就像是导航的触发器,而NavigationView则负责处理视觉,动画和其他有关导航的内容。

请注意,由于SwiftUI还很年轻,因此Xcode无法准确检测出问题所在,有时会显示错误或不清楚的消息。但是苹果一直在不断努力,并不断改进其发布。