有没有一种方法可以用来同时.onChange检测多个属性的变化?@State我知道我可以只链接 2 个.onChange修饰符,但如果我可以一次检测所有修饰符并运行一些代码,那就更好了。
@State private var width = 0.0
@State private var height = 0.0
var body: some View {
Button(action: {
width += 0.1
}, label: {
Text("Width + 0.1")
})
.onChange(of: width) { _ in
print("Changed")
}
}
Run Code Online (Sandbox Code Playgroud)
对于这种情况,这是我认为最简单的
.onChange(of: width + height) { _ in
print("Changed")
}
Run Code Online (Sandbox Code Playgroud)
更新:正如我上面写的那样,它是“最简单的”(对于特定场景来说就足够了),但当然也可以使用其他变体,“更智能/重型/通用/等”。
感谢@AgentBilly,这是其中之一:
.onChange(of: [width, height]) { _ in
print("Changed")
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1372 次 |
| 最近记录: |