Обновление значения ObservableObject закрывает представление - PullRequest
0 голосов
/ 09 июля 2020

В своем приложении я использую 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")
        }
    }
 }
...