I have a @State
variable and async function. I want to call the async function whenever that variable is changed.
Basically, what I am trying to do
VStack {
Text("")
}
.onChange(of: var) { newValue in
await asyncFunction()
}
But this gives me the following error
Cannot pass function of type '(Int) async -> ()' to parameter expecting synchronous function type
You cannot directly call an async function in the synchronous function. You need to wrap your call in Task
or else you need to declare your function as async
. Now in this case you cannot make your onChange
action async
so you need to wrap your call with Task
.
Task {
await asyncFunction()
}