如何从 SwiftUI 中的两个不同视图分支发送事件?
How to send an event from two different view branches in SwiftUI?
我正在为 macOS 构建一个 SwiftUI 应用程序,然后遇到了以下挑战。
给定如下视图层次结构:
这基本上显示了 ElementListView
中的元素集合。然后 FiltersView
用于搜索可能添加到元素列表的新元素,该搜索的结果显示在像 FilterRow
.
这样的行中
当用户点击 FilterRow
时,这意味着我想向 ElementListView
添加一个新元素,但我不确定 如何在 FilterRow
之间传播事件SwiftUI 中视图层次结构的两个分支?
如果我要在纯 AppKit 中实现它,我可能会使用 响应链 ,但我想这不是 SwiftUI 的实现方式。
您可以为过滤器和列表视图共享一个 ObservableObject。一旦 ObservableObject 发生变化,SwiftUI 就会更新连接到它的视图。
我正在为 macOS 构建一个 SwiftUI 应用程序,然后遇到了以下挑战。
给定如下视图层次结构:
这基本上显示了 ElementListView
中的元素集合。然后 FiltersView
用于搜索可能添加到元素列表的新元素,该搜索的结果显示在像 FilterRow
.
当用户点击 FilterRow
时,这意味着我想向 ElementListView
添加一个新元素,但我不确定 如何在 FilterRow
之间传播事件SwiftUI 中视图层次结构的两个分支?
如果我要在纯 AppKit 中实现它,我可能会使用 响应链 ,但我想这不是 SwiftUI 的实现方式。
您可以为过滤器和列表视图共享一个 ObservableObject。一旦 ObservableObject 发生变化,SwiftUI 就会更新连接到它的视图。