使用if语句在swiftui中设置布尔值
我对swiftui非常陌生,所以我不知道自己是否完全做错了,但这个错误没有帮助。这是我的密码:使用if语句在swiftui中设置布尔值,swiftui,Swiftui,我对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 first
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。它总是给我一个错误,说“表达式类型在没有更多上下文的情况下是不明确的”您不能像往常一样在SwiftUI中“编写代码”。SwiftUI要求您返回视图。
也许你应该读一些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)
}
}
}
你根本不需要设置它!只要计算一下:
var hasName: Bool { firstName != "" && lastName != "" }
请注意最好使用
。isEmpty
:
var hasName: Bool { !firstName.isEmpty && !lastName.isEmpty }