Data flow, State & Binding, ObservableObject
@State
class Book: ObservableObject { @Published var title = "Great Expectations" }
struct BookView: View { @ObservedObject var book: Book var body: some View { Text(book.title) } }
struct MyApp: App { @StateObject private var book = Book() @SceneBuilder var body: some Scene { ... BookView(book: book) ... } }
Book
BookView
BookView(book: book)
struct MyApp: App { @StateObject private var book = Book() @SceneBuilder var body: some Scene { BookView() .environmentObject(book) // Previously // BookView(book: book) } }
struct BookView: View { @EnvironmentObject var book: Book // Previously // @ObservedObject var book: Book var body: some View { Text(book.title) } }