实战需求
我尝试了很多不同的方法,但都没有奏效,当我尝试添加 .onChange 时出现此错误
Instance method 'onChange(of:perform:)' requires that 'Binding<Int>' conform to 'Equatable'
我这样定义 currentTab
@State var currentTab = 0;
此代码给出了错误
.onChange(of: $currentTab, perform: { newValue in
print(newValue)
})
解决方案
为了让 onChange 工作,你需要做的不仅仅是拍一个 onChange,你需要包括适当的标签,就像这个例子
struct ContentView: View {
@State var value: Int = 1
var body: some View {
TabView(selection: $value) {
Text("View One").tabItem { Text("One") }.tag(1)
Text("View Two").tabItem { Text("Two") }.tag(2)
Text("View Three").tabItem {Text("Three") }.tag(3)
}
.onChange(of: value) { val in
print("---> val: \(val)")
}
}
}
注意:标签类型应与“值”类型匹配
加入我们一起学习SwiftUI
QQ:3365059189 SwiftUI技术交流QQ群:518696470 教程网站:www.openswiftui.com
|