[英]How to return to the original input swift UI .onTapGesture
我有一个 function,它允许我通过获取 API 直接从网站收集汇率。
我使用下面的 function 将获取的数据与 Doubles 相乘。
func operation(_ input: Double) -> Double {
@State var showAlert : Bool = false
switch self {
case .Kazakhstan:
if let rates = FetchData.conversionData?.rates["KZT"] {
return (input * Double(rates))
}else{
//Show error Alert
return input
}
case .Rubles:
if let rates = FetchData.conversionData?.rates["RUB"] {
return (input * Double(rates))
}else{
//Show error Alert
return input
}
case .Usa:
if let rates = FetchData.conversionData?.rates["USD"] {
return (input * Double(rates))
}else{
//Show error Alert
return input
}
case .Dirhams:
if let rates = FetchData.conversionData?.rates["AED"] {
return (input * Double(rates))
} else {
//Show error Alert
return input
}
}
}
但目前,我已经添加了一个选项 of.onTapGesture,这将允许我使用我之前提到的上面的 function。 我不确定如何返回初始值的唯一问题。
下面是我的代码,用于对获取的汇率进行乘法运算。
.onTapGesture {
if monitor.isConnected == false {
showingAlert = true
}
CircleBorder.toggle()
CurrencyLight.toggle()
if tappedAgain == false {
state.currentNumber = function.operation(state.currentNumber)
tappedAgain.toggle()
} else {
tappedAgain.toggle()
}
}
请忽略上面的所有内容,除了代码行
state.currentNumber = function.operation(state.currentNumber)
如何返回早于 function.operation(state.currentNumber) 已被放置的输入值(初始值 before.onTapGesture 已输入)?
顺便说一句 state.currentNumber = 0
我不确定你的state
是什么,但你需要将之前的号码存储在另一个变量中,如下所示:
if tappedAgain == false {
state.storedNumber = state.currentNumber
state.currentNumber = function.operation(state.currentNumber)
tappedAgain.toggle()
} else {
state.currentNumber = state.storedNumber
tappedAgain.toggle()
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.