Мне нужно открыть представление с именем PackageDetails
.
В двух случаях это представление можно открыть.
1. Если вы нажмете указанный c пакет из списка пакетов.
У меня есть массив всех пакетов. Итак, я передаю специфика c структуру из этого списка и открываю это представление пакета. PackageDetail(package: package)
. У меня уже есть все необходимые данные, поэтому мне не нужно делать дополнительный вызов в Firestore, чтобы получить этот документ.
2. Представление пакета можно открыть по ссылке из какого-либо другого представления в этом приложении.
В этом случае у меня нет всех деталей этого указанного c пакета, но у меня есть только ссылка на Пожарная документация. Я использую эту ссылку, чтобы сделать запрос, как только появится это представление, и получить подробную информацию об этом пакете. PackageDetail(package: packageReference)
Я делаю это путем объявления пакета как необязательного @State var package: PackageModel?
и onAppear. Я проверяю, является ли Пакет нулевым или нет.
.onAppear {
if let package = self.package {
// package data exists
} else {
// fetch it from firestore
}
}
Вопрос в том, правильно ли я делаю? Это лучший подход?