我了解如何使用@EnvironmentObject使全局数据可用于任何视图类,但是我找不到找到将变量传递给非视图类的方法。
我的情况,似乎是一个常见问题,是:
let contentView = ContentView()
.environmentObject(UserSettings())
struct HomeView: View {
@EnvironmentObject var user: UserSettings <=== ACCESS TO GLOBAL DATA
@ObservedObject var categories = Categories() <=== GET DATA FOR THIS VIEW
var body: some View {
...
}
class Categories : ObservableObject {
@Published var allCategories = CategoriesModel()
@EnvironmentObject var user: UserSettings <==== CANNOT ACCESS THIS DATA!
init() {
fetchCategories(page: 0, pageSize: 20)
}
UserSettings为空,因为此类不是View结构,并且行为似乎不像View类。由于我需要的访问令牌存储在UserSettings类中,因此如何获得对此的访问权限?有没有其他方法可以存储/访问此数据?
答案 0 :(得分:3)
使用单例模式。从void foo( char *str )
和UserSettings.sharedInstance
致电Categories