更新ObservableObject值可消除视图

时间:2020-07-09 01:20:39

标签: swift swiftui combine navigationview

在我的应用程序中,我使用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")
        }
    }
 }

0 个答案:

没有答案
相关问题