Swiftui Textfield имеет задержку пользовательского интерфейса в ONSUBMITIOS

Программируем под IOS
Anonymous
Swiftui Textfield имеет задержку пользовательского интерфейса в ONSUBMIT

Сообщение Anonymous »

У меня есть следующий метод в представлении Swiftui :

Код: Выделить всё

func onSubmit()
{
// @State
isLoading = true

Task
{
try await someNetworkRequest()
await MainActor.run { isLoading = false }
}
}
это может быть сведено кнопкой или Textfield , со следующими результатами:

[*] Запускается кнопкой В просмотре панель инструментов: UI сразу отражает isloading = true . Скажи, это связано с тем, что действие кнопки работает немедленно, в то время как в onsubmit Textfield может придется выполнять другие задачи, такие как уход в отставку первого респондента, совершение текста и отклонение клавиатуры, прежде чем на самом деле добраться до моего действия. Кнопка поведение.
Например, если вместо того, чтобы просто вызовать onsubmit () , я обертываю свой призыв к onsubmit () в dispatchqueue.main.async , тогда поведение реверсируется - Textfield onsubmit ведет себя, но кнопку код . /> Я пробовал различные другие методы, такие как запуск wawait mainactor.run {isloading = true} в задаче , но это не имеет значения. И я не настолько знаком с параллелизмом Swiftui, чтобы знать наверняка, но я не думаю, что смешивание более новой задачи с Dispatchqueue обычно рекомендуется.
Как я могу работать для обоих случаев?>

Подробнее здесь: https://stackoverflow.com/questions/796 ... n-onsubmit

Вернуться в «IOS»