我试图从 struct的 var 设置 struct 的var@State中的 var值,但它不起作用。我需要使用var 因为我将它作为绑定传递。前任:aAbB@State
struct A : View {
@State var myBindableVar = ""
var body : some View {
TextField(self.$myBindableVar) ...
}
}
struct B : View {
@State var a : A
var body : some View {
Button(action: { self.a.myBindableVar = "???" }) { ... }
}
}
Run Code Online (Sandbox Code Playgroud)
myBindableVar未设置"???"为点击按钮时。为什么?
您需要使用@Binding来实现这一点。这是一些示例代码。我让视图 B 出现在视图 A 内,以便您可以直接在屏幕上看到工作结果:
struct A : View {
@State var myBindableVar = ""
var body : some View {
VStack {
Text(myBindableVar)
Spacer()
B(myBindableVar: $myBindableVar)
}
}
}
struct B : View {
@Binding var myBindableVar : String
var body : some View {
Button(action: { self.myBindableVar = "Text appears" }) {
Text("Press to change")
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3472 次 |
| 最近记录: |