на экран B перезагружается делает апи запросы заново. Как можно это остановить?
а где запросы? в loadView/viewWillAppear и тд. соответсвенно сделай так чтобы только при загрузке запросы шли, а потом вьюха из памяти не выгружалась
запросы внутри onAppear
Гугли viewDidLoad SwiftUI
А ну суть та же да
как я могу узнать что вьюха загрузился или юзер играет со свайпом?
Я же тебе сказал что гуглить, там четкий ответ дан
ты сказал гуглить viewDidLoad SwiftUI. альтернатива viewDidLoad на SwiftUI это .onAppear . Мой код уже находится внутри onAppear.
viewDidLoad это не onAppear, onAppear это viewDidAppear
Зануда мод. Чисто технически, onAppear вызывается в конце текущего цикла ранлупа, но до того, как core animation отправит транзакцию на рендер. Это нужно для того, что внутри onAppear могут произойти вещи, которые снова заставят выполниться body. И что бы не создавать ещё одну транзакцию в случае изменений. Таким образом система вызывает onAppear до самого рендера иерархии, а значит это больше похоже на viewDidLoad, или viewWillAppear из UIKit.
https://betterprogramming.pub/swiftui-were-loading-we-re-loading-7d689fa8b0c7 это помогло
Ладно вот https://stackoverflow.com/a/64495887
Спасибо тут тоже делают похожее обе варианта работают как надо https://betterprogramming.pub/swiftui-were-loading-we-re-loading-7d689fa8b0c7
onAppear это viewWillLoad
взаимодействие с апи лучше сделать на нулевом уровне (родительское вью) остальное уже роутить туда
Обсуждают сегодня