swiftui - 你怎么知道@EnvironmentObject 中的@Published var 何时发生变化?
问题描述
我有这个
class GlobalVariables: ObservableObject, Equatable {
@Published var searchText:String = ""
}
这由 ContentView 使用。
searchText
当用户在搜索栏上键入时更改。
在另一个视图中,我有这个:
@EnvironmentObject var globalVariables : GlobalVariables
在那个类上,我需要检测何时searchText
更改(didSet?),但是如何?
抱歉,我是 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
}
}
}