如何解决将 `environmentObject` 数据传递给另一个类单例
我有一个保存一些数据的 observableObject
类。
可观察类
class UserManager:ObservableObject {
@Published
var profile:userProfileModel = userProfileModel()
@Published
var settings:Settings = Settings()
@Published var currentView:String
@Published var isLoggedIn:Bool
然后我创建它并将其从 SceneDelegate
作为 environmentObject
传递以查看层次结构。
场景委托
@StateObject var userManager = UserManager()
let contentView = loginRoot().environmentObject(userManager)
问题是我有一个与服务器同步的单例类,我需要更新 UserManager
类中的数据。
单人班
public class usermodelAPI {
@Observedobject var userManager: UserManager = UserManager()
public static let shared = usermodelAPI()
func syncServer() {
userManager.isLoggedIn = true
}
但它根本不起作用。 我无法从单例类发布更改。
解决方法
在你的单例中你有一个新的 UserManager(),它不同于 SceneDelegate "@StateObject var userManager ...", 这可能就是为什么它不像你期望的那样工作。 在你的 SceneDelegate 中试试这个:
@StateObject var userManager = UserModelAPI.shared.userManager
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。