SwiftUI 更新导航操作状态

dav*_*dev 5 macos xcode list swift swiftui

我在我的 SwiftUI Mac OSX 应用程序中使用导航视图。我有一个列表视图来选择人员,然后在 PersonDetail 中显示他们的属性。它工作正常。但是,我将一个状态发送到PersonDetail View.

这工作正常,但是每次单击新行时,我都想再次将状态重置s_selectedView0

是否有 NavigationView 更新事件?我尝试onAppear()在我的 PersonDetail 视图中使用一个事件,但是它只被调用一次。我看到的唯一选择是将我的状态推向我的状态List,然后tapGesture在表视图上更改它。

那是我的导航视图代码:

  NavigationView {
    PersonList(selectedPerson: $selectedPerson)

    if selectedPerson != nil {
        PersonDetail(person: selectedPerson!, s_currentView: self.$s_selectedView)
        //Here I would need a event, for appear / update
        //.onAppear
        //{
            //only called once 
        //}

    }
  }
Run Code Online (Sandbox Code Playgroud)

这是我在上述相同视图中的绑定:

@State var s_selectedView : Int = 0
Run Code Online (Sandbox Code Playgroud)

每当在列表中按下新项目时,我都想将该变量重置为 0。

翻译:博士

是否有类似onAppear仅用于update状态的等效函数?问题是我的视图没有再次出现(onAppear没有被调用),只是数据因@State事件而改变。我怎样才能赶上那个事件?