В своем приложении я использую EnvironmentObject
, который я использую для хранения объектов данных и профиля пользователя, я использую его для внесения изменений во всем приложении с помощью различных настроек.
У меня также есть ViewModel
ObservableObject
для передачи данных между представлениями.
Я пытаюсь установить значения данных из одного Observable Object
в другое в дочернем представлении NavigationView
, которое находится в среде приложения.
Однако при следующих действиях он продолжает отклоняться до root 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")
}
}
}