我们如何在SwiftUI中的.onChange视图中找出一些条件?
我在我们如何在SwiftUI中的.onChange视图中找出一些条件?,swiftui,Swiftui,我在中控制一个条件。一旦改变了一个文本的,如果这个条件通过了,那么我想运行一些代码,这是我的代码,它可以工作,但它不支持我给定的条件,它可以为真也可以为假。我希望它只对真实有效。我如何编写代码 import SwiftUI struct ContentView: View { @State var truePhase: Bool = false var body: some View { Text(truePhase ? "Phas
中控制一个条件。一旦改变了一个文本的,如果这个条件通过了,那么我想运行一些代码,这是我的代码,它可以工作,但它不支持我给定的条件,它可以为真也可以为假。我希望它只对真实有效。我如何编写代码
import SwiftUI
struct ContentView: View {
@State var truePhase: Bool = false
var body: some View {
Text(truePhase ? "Phase is True" : "Phase is False")
.onChange(of: truePhase == true , perform: { value in
print(truePhase)
})
Button(action: {
truePhase.toggle()
}){
Text("Change Phase")
}
}
}
每当某些equalable
更改时,就会调用onChange
。如果将一个条件作为值
参数传递,则每当该条件发生变化时(无论其为真或假),都将执行执行
关闭。您需要在perform
closure中进行检查
为此,您可以使用例如guard
语句。请尝试以下操作:
.onChange(of: truePhase) { value in
guard value else { return } // if `value` is not `true` then return
print(truePhase) // here value is `true`
}
谢谢,我知道如何使用guard,或者如果我想在.onChange中的()中使用控制部分,就像我的code@Omid这是不可能的。看到我更新的答案。感谢更新,我想要比使用(guard或if)更高效的编码,所以让我这样问我的问题,我们如何让一个观察者观察文本值的变化?换句话说,我们如何观察文本值是否发生变化并得到通知?@Omid对于文本,您通常使用一些@State var Text=“”
变量。你可以观察它。onChange(of:text){value in}
我知道关于State和.onChange的所有内容,这些都是观察的逻辑方法。你是对的,我想为这个视图添加一些自定义通知,还记得我最后一个问题吗?你在.onReceive上添加了一个通知,用于查找方向!如果你认为我应该提出另一个问题,而这与这个问题无关,请让我知道。