在我的应用程序中,我使用EnvironmentObject
来存储数据对象和用户个人资料,并通过各种设置对整个应用程序进行更改。
我还有一个ViewModel
ObservableObject
用于在视图之间传递数据。
我正在尝试在Observable Object
的子视图中将数据值从一个NavigationView
设置为另一个,该子视图位于应用程序的环境中。
但是,当执行以下操作时,它始终保留到根NavigationView
。有人知道为什么会这样吗?
ObservableObject
class UserStore : ObservableObject {
var didChange = PassthroughSubject<Void, Never>()
//MARK: Properties
@Published var profile: User? {didSet{didChange.send() }}
@Published var editingNote: Note? {didSet{didChange.send() }}
}
ObservableObject
class NoteViewModel: ObservableObject {
var didChange = PassthroughSubject<Void, Never>()
@Published var note: Note? {didSet{didChange.send() }}
}
查看
@EnvironmentObject var userStore: UserStore
@ObservedObject var model: NoteViewModel
var body: some View {
VStack {
Button(action: {
self.userStore.editingNote = self.model.note
}) {
Text("Edit note")
}
}
}