我想使用 onIncrement 和 onDecrement 在手动(非绑定)模式下使用 Stepper 视图。当我尝试实现下限和上限时,会有一个奇怪的行为,例如。年龄值不低于 1 或高于 10。
如果你尝试下面的代码,你可以在它已经有值“1”之后按两次“-”。它没有像预期的那样低于 1,但是在另外两次按下“-”按钮后突然被禁用。如果您然后按“+”,则不会发生任何事情。只有在 2 次额外按下“+”后,计数器才会按预期做出反应并变为 2。
这是一个错误吗?
struct StepperTest: View {
@State private var age = 5
var body: some View {
VStack {
Stepper("Enter your age", onIncrement: {
if self.age < 10 {
self.age += 1
print("Adding to age")
}
}, onDecrement: {
guard self.age > 1 else { return }
self.age -= 1
print("Subtracting from age")
})
Text("Your age is \(age)")
}
}
}