Опрос статуса доставки продолжается после ухода с экрана заказа
struct DeliveryView: View {
@StateObject var vm: DeliveryViewModel
var body: some View {
StatusCard(status: vm.status)
.onAppear {
Task { await vm.pollStatus() } // цикл: запрос, пауза 5 секунд
}
}
}
Пользователь уходит назад, а в логах сервера запросы статуса идут каждые 5 секунд. После трёх заходов на экран — три параллельных опроса. Как проще всего исправить?
- Заменить onAppear + Task на модификатор .task
- Вызывать опрос в init структуры DeliveryView
- Сделать pollStatus синхронным методом
- Перенести Task в .onDisappear
