Oggetti dell’ambiente
Fa parte della sezione Introduzione a SwiftUI del percorso Swift di Coddy. Lezione 41 di 50.
Passare un oggetto attraverso ogni vista fino a quella che ne ha bisogno diventa noioso. Inseriscilo invece nell’ambiente, così qualsiasi vista sottostante potrà leggerlo:
@StateObject private var cart = Cart()
var body: some View {
NavigationStack {
ShopView()
}
.environmentObject(cart)
}Una vista più avanti dichiara ciò di cui ha bisogno con @EnvironmentObject, senza un valore iniziale:
struct CartBadge: View {
@EnvironmentObject var cart: Cart
var body: some View {
Text("\(cart.count) in cart")
}
}ShopView non menziona mai il carrello, ma CartBadge al suo interno riceve comunque lo stesso oggetto. Se nessuna vista sopra di essa lo fornisce con .environmentObject, l'app si interrompe con un errore quando viene mostrato CartBadge.
Sfida
MedioCartBadge deve mostrare il conteggio del carrello condiviso. Fornisci cart a VStack con .environmentObject e modifica CartBadge in modo che lo legga con @EnvironmentObject. Dopo un tocco, il badge deve mostrare 1 in cart.
Provalo tu
import SwiftUI
@main
struct CoddyApp: App {
var body: some Scene {
WindowGroup {
ContentView()
}
}
}Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Introduzione a SwiftUI
7Elenchi
Per ogni elementoElementi identificabiliElencoAggiungere elementiRiepilogo - Lista della spesa10Progetto - Coddy Coffee
Panoramica del progettoSchermate delle bevande2Mostrare contenuti
Viste di testoNumeri nel testoFontColoriSF SymbolsRiepilogo - Etichetta del prezzo5Stato e pulsanti
PulsantiLa proprietà @StateStato vero o falsoViste condizionaliRiepilogo - Segnapunti9Condivisione dei dati
La proprietà @BindingOggetti osservabiliOggetti dell’ambienteRiepilogo - Contatore di passiEsercitati da solo: Playground SwiftUI