我有一个工作正常的形式,但想添加一个toggle表示,如果一个服装是使用或新的。如果它是新的toggle上,如果它使用的条件框将显示用户可以输入服装条件。
当toggle打开时,我想把值设置为静态字符串值 "New"。
我已经尝试过的代码。
Form{
VStack {
Toggle(isOn: self.$itemNew) {
Text("is the item new?")
self.$Cond == "New"
}
if !itemNew {
TextField("Item Condition:", text: self.$Cond) {}
}
}
}
那段代码似乎并不奏效, 有什么建议可以告诉我应该从哪里解决这个问题吗?
谅谅
你不需要使用$,你可以像这样手动创建一个Binding。
Toggle(isOn: Binding(get: {self.cond == "New" ? true : false},
set: {
if newValue == true{
self.cond == "New"
}else{
self.cond == "Not really new"
}
})) {
Text("is the item new?")
}
而self.cond仍然必须是一个@State变量来触发View更新它的视觉表现. 但你的案例看起来并不是很普通的工具. 有没有其他可能的字符串值?