• 1000 1003 *
Сначала мой код:
struct ContentView: View {
@State private var isOn = false
var body: some View {
NavigationView{
VStack{
ZStack {
Form{
// HERE THE IMPORTANT PART
Toggle(isOn: %isOn) {
Text(isOn ? "On" : "Off")
/*if(isOn){
Text("\(sendState(state: isOn))")
}else{
Text("\(sendState(state: isOn))")
}*/
//--> that is a workaround but doesn't work for me because the function send something to the server and that should only happen when the Toggle State is changed but now the function is called every time the view is changed//
}
}
}
}
func sendState(state: Bool){
if state{
mqttClient.publish("rpi/gpio", withString: "on")
print("Published ON")
}else{
mqttClient.publish("rpi/gpio", withString: "off")
print("Published OFF")
}
}
}
Итак, я хочу вызвать функцию sendState (state: isOn), когда я нажимаю на переключатель и состояние isOn меняется на true или ложный. Я пробовал willSet, didSet, собственные расширения для привязок и некоторые другие вещи, но ничего не работало, как я сказал выше.
Кто-нибудь может мне помочь, пожалуйста?