我是swiftui的新手,所以我不知道自己做错了什么,但是错误没有帮助。这是我的代码:
import SwiftUI
struct IntroScreenP2: View {
var hasName: Bool = false
@State private var firstName: String = ""
@State private var lastName: String = ""
var body: some View {
VStack {
if firstName != "" && lastName != "" {
hasName = true
}
TextField("First Name", text: $firstName)
.padding(.leading)
.padding(.bottom, 5)
Divider()
TextField("Last Name", text: $lastName)
.padding(.leading)
.padding(.top, 5)
}
}
}
当用户在文本字段中输入其名称时,我只是想将布尔值设置为true。它一直给我一个错误,说“表达式类型在没有更多上下文的情况下是模棱两可的”
答案 0 :(得分:0)
您不能像在SwiftUI中一样照常“编码”。 SwiftUI要求您返回Views。 也许您应该阅读一些SwiftUI简介和教程。
这是代码“更正”。如果您告诉我想要使用变量的内容,我可以为您提供更多帮助。
struct ContentView: View {
@State var hasName: Bool = false
@State private var firstName: String = ""
@State private var lastName: String = ""
var body: some View {
VStack {
if firstName != "" && lastName != "" {
Text("Has name")
}
TextField("First Name", text: $firstName)
.padding(.leading)
.padding(.bottom, 5)
Divider()
TextField("Last Name", text: $lastName)
.padding(.leading)
.padding(.top, 5)
}
}
}
答案 1 :(得分:0)
您根本不需要set
!只需进行计算即可:
var hasName: Bool { firstName != "" && lastName != "" }
请注意,最好改用.isEmpty
:
var hasName: Bool { !firstName.isEmpty && !lastName.isEmpty }