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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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