@State装饰的变量支持初始化子组件的常规变量
时间: 2024-10-21 07:11:22 浏览: 20
flash初始化子程序.docx编程资料
`@State` 是 SwiftUI 中的一个修饰符,用于声明组件内部的数据状态,它使得这些数据可以在视图层次结构中进行观察,并允许它们在组件渲染时自动更新。当你在 SwiftUI 的某个 `View` 上使用 `@State` 关键字,你可以定义一个变量并初始化它,这个初始化值会在子组件初次加载时传递下来。
例如:
```swift
struct ParentView: View {
@State private var value = "Hello, Child!"
var body: some View {
VStack {
Text("Parent Component")
.onReceive(valueSubject) { newValue in
value = newValue
}
ChildComponent(value: $value)
}
}
}
struct ChildComponent: View {
@ObservedObject var parentValue: ParentView
init(value: Binding<String>) {
_parentValue = State(wrappedValue: value)
}
var body: some View {
Text(parentValue.value)
}
}
```
在这个例子中,`ChildComponent` 接收了一个从 `ParentView` 子组件传来的绑定 `value`。当 `ParentView` 的 `value` 发生改变时,`ChildComponent` 会立即反映出新的值。
阅读全文