如何打开要用作绑定参数的可选@State?
import SwiftUI
struct ContentView: View {
@State var testString = "Hello"
var body: some View {
TestView(test: testString)
}
}
struct TestView : View {
@State var test : String?
var body: some View {
TextField("Test", text: $test)
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
这是我在TextField调用中收到的编译器错误。
Cannot convert value of type 'Binding<String?>' to expected argument type 'Binding<String>'
在这种情况下,我们应该使用Binding
struct ContentView: View {
@State var testString = "Hello"
var body: some View {
TestView(test: $testString)
}
}
struct TestView : View {
@Binding var test : String
var body: some View {
TextField("Test", text: $test)
}
}
这是一个看起来有效的单行解决方案。
TextField("Test", text: Binding($test)!)
所以新结构就像这个
struct TestView : View {
@State var test : String?
var body: some View {
VStack {
TextField("Test", text: Binding($test)!)
Text(test!)
}
}
}