如handling user input tutorial中所示。
struct LandmarkList: View {
@State var showFavoritesOnly = true
var body: some View {
NavigationView {
List {
Toggle(isOn: $showFavoritesOnly) {
Text("Favorites only")
}
...
什么是showFavoritesOnly / $ showFavoritesOnly语法?
这是Binding<T>
独有的东西,还是我们可以在自己的代码中使用它?
答案 0 :(得分:2)
@State
旨在用作SwiftUI属性的绑定。在您的body
的{{1}}访问者之外对其进行的任何访问都将崩溃:
View
SwiftUI会自动跟踪所有Thread 1: Fatal error: Accessing State<Bool> outside View.body
声明,并在其中任何一个更改时重新计算适当的@State
。
body
是使用Swift 5.1 @State
功能实现的,该功能可以自定义属性的存储行为。