TextField("search", text: $searchText)
.accentColor(Color("ClickableLink"))
.foregroundColor(.white)
.focused($focusedField, equals: .field)
.onAppear {
self.focusedField = .field
}
.onSubmit {
loadinglayout = true
do {
try await getMemes()
}
catch {
print(error)
}
}
I get
"Cannot pass function of type ‘() async -> Void’ to parameter expecting synchronous function type"
inside onSubmit.
So far the
do
method solved this kind of issues, why not here? I have absolutely no idea what else I could try
2
Answers
The problem is that you are trying to call an
async
method from a synchronous method.onSubmit
is synchronous, whilegetMemes
is async.You need to wrap
async
methods in aTask
if you want to call them from a synchronous context.If you are calling async function inside button
it will wait for function to return data.