Swift:无法将任何视图的返回表达式转换为某些视图的返回类型

Kea*_*Mlj 6 swift swift5 swiftui

我不知道我有什么错误:无法将任何视图的返回表达式转换为某些视图的返回类型

我尝试了一些东西,但没有任何效果......而且我在网上找不到任何东西

感谢您的帮助...

    struct LoginView: View {

    @Binding var showCreateAccount: Bool

    @State private var email = ""
    @State private var password = ""
    @State private var formOffset: CGFloat = 0
    @State private var presentPasswordRecoverySheet = false


    var body: some View {

         VStack {

            VStack(spacing: 40) {

                Image("Logo")

                Text("Login").font(.title).bold()

                VStack {
                    RoundTextfield(value: self.$email, placeholder: "Email", icon: Image(systemName: "at"),
                                    onEditingChanged: { flag in withAnimation { self.formOffset = flag ? -150 : 0 } })

                    RoundTextfield(value: self.$password, placeholder: "Password", icon: Image(systemName: "lock"), isSecure: true,
                                    onEditingChanged: { flag in withAnimation { self.formOffset = flag ? -150 : 0 } })

                    BasicButton(text: "Login") {}
                }


                Button(action: { withAnimation(.spring() ) { self.showCreateAccount.toggle() } } )
                {
                  HStack { Text("Don't have an account? Sign up.").accentColor(Color.accentColor) }
                }


                Button(action: { self.presentPasswordRecoverySheet.toggle() } )
                {
                  HStack { Text("Forgot your password?").accentColor(Color.purple) }
                }
                .sheet(isPresented: self.$presentPasswordRecoverySheet)
                    { RecoverPasswordView(presentPasswordRecoverySheet: self.$presentPasswordRecoverySheet) }

            }
            .padding()
            .offset(y: self.formOffset)

        }
    }
Run Code Online (Sandbox Code Playgroud)

这是我的 BasicButton 代码,但我认为这不是问题

    struct BasicButton: View {
    var text = "Next"
    var action: (()->()) = {}

    var body: some View {
      Button(action: {
        self.action()
      }) {
        HStack {
            Text(text)
                .bold()
                .frame(minWidth: 0, maxWidth: .infinity)
                .padding(.vertical)
                .accentColor(Color.white)
                .background(Color("accentColor"))
                .cornerRadius(30)
            }
        }
    }
}

struct BasicButton_Previews: PreviewProvider {
    static var previews: some View {
        BasicButton()
    }
Run Code Online (Sandbox Code Playgroud)

当我删除创建帐户和忘记密码的两个按钮功能时,代码可以构建

Lun*_*irl 1

我\xe2\x80\x99一整天都在摆弄同样的错误。正常构建/运行时,\xe2\x80\x99s 没有问题。这很奇怪。我什至尝试注释掉我看来的几乎所有代码,除了一小部分,而且我\xe2\x80\x99m 仍然遇到.font(.title). 令人惊讶的是,如果我尝试在新项目中运行相同的代码,没有问题。另外,如果我只是注释掉设置字体类型的行,预览就会编译并显示。

\n

而且报告的错误基本上都是无意义的,它们\xe2\x80\x99甚至不在正确的行上。

\n

所以我猜预览功能仍然充满了错误。希望它很快就会改善。感觉就像 Swift 最初推出时,人们开始采用和使用它的速度比苹果修复它的速度还要快。或者更确切地说,Swift 可能是在工具准备好之前就发布的。SwiftUI 的情况似乎相同。

\n

  • 与 `.foregroundColor(_:)` 和 `.font(_:)` 有同样的问题 (2认同)