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
CodePudding user response:
The problem is that you are trying to call an async
method from a synchronous method. onSubmit
is synchronous, while getMemes
is async.
You need to wrap async
methods in a Task
if you want to call them from a synchronous context.
.onSubmit {
loadinglayout = true
Task {
do {
try await getMemes()
}
catch {
print(error)
}
}
}