首页 > 解决方案 > 你怎么知道@EnvironmentObject 中的@Published var 何时发生变化?

问题描述

我有这个

class GlobalVariables: ObservableObject, Equatable {
  @Published var searchText:String = ""
}

这由 ContentView 使用。

searchText当用户在搜索栏上键入时更改。

在另一个视图中,我有这个:

@EnvironmentObject var globalVariables : GlobalVariables

在那个类上,我需要检测何时searchText更改(didSet?),但是如何?

抱歉,我是 SwiftUI 的新手。

标签: swiftui

解决方案


你可以使用.onReceive,比如

struct OtherView: View {
   @EnvironmentObject var globalVariables : GlobalVariables

   var body: some View {
      Text("some view")
        .onReceive(globalVariables.$searchText) { newValue in
           // do anything needed here
        }
   }
}

推荐阅读