如处理用户输入教程所示。
struct LandmarkList: View {
@State var showFavoritesOnly = true
var body: some View {
NavigationView {
List {
Toggle(isOn: $showFavoritesOnly) {
Text("Favorites only")
}
...
什么是显示收藏夹只有/$showFavoritesOnly语法?
它是Binding<T>
独有的东西,还是我们可以在自己的代码中使用它?
@State
旨在用作 SwiftUI 属性的绑定。在View
的body
访问器之外对它的任何访问都将崩溃,并显示:
Thread 1: Fatal error: Accessing State<Bool> outside View.body
SwiftUI 会自动跟踪所有@State
声明,并在其中任何声明发生更改时重新计算相应的body
。
@State
是使用 Swift 5.1 @propertyDelegate
功能实现的,该功能允许自定义属性的存储行为。