问题标签 [observableobject]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
swift - SwiftUI 致命错误:未找到类型的 ObservableObject
我想在我的应用程序中有一个点,我可以在其中存储一些数据并快速访问它。在 SwiftUI 之前,我只是ApplicationDelegate
为了这个目的。在我只需要调用 kind of 之前appDelegate.userService
,它为我提供了应用程序中的一个点,该点已初始化一次。没有更多的单例,只是 appDelegate。
现在我找到了这个教程如何使用@EnvironmentObject
我在这里添加了这段代码来初始化我的 userService:
在我看来,我也有这段代码:
在上面,LoginView
我有一个通过电子邮件从服务器获取用户的功能:
但是当我尝试调用getUser
函数时,我得到了这个错误:
这是我的用户服务:
主要问题是如何解决上述问题?
我也有附带问题:
- 我是否需要设置这个环境单例对象(
@EnvironmentObject
)或者最好像以前一样使用 AppDelegateappDelegate.userService
并将所有需要的数据存储在那里,我看不出这个东西有什么好处。 - 如果有一些优势,我是否需要创建用户服务,
ObservableObject
因为对我而言,用户服务更多的是关于执行某些功能(获取用户数据、更新服务器上、本地存储中的用户数据等),而不是数据模型层我们需要观察。这里完全糊涂了。在我上面提供的链接中,Paul 将其ObservableObject
用于应用程序设置,但不确定这是否正确。 - 在我的示例中,我尝试从服务器获取用户并在获取后更新用户服务中的用户,这是正确或干净的设计代码还是我想多了?
ios - SwiftUI:执行函数时如何从观察到的对象中捕获变化的值
我在 SwiftUI 中观察到的对象有问题。我可以在 View 结构上看到观察对象的值发生变化。但是在类或函数中,即使我更改了 TextField(这是可观察对象)的文本值,但“self.codeTwo.text”仍然没有改变。
这是我的代码示例(这是我的 ObservableObject)
主要问题是......“self.codeTwo.text”从未改变!
这是视图,我可以捕捉到这个值的变化
请帮帮我。
swiftui - SwiftUI ObservableObject 和已发布问题
这已经让我醒了三天:我正在编写一个将 va BT 连接到 Arduino 的小应用程序。为了获得关于连接状态和传输数据的视觉反馈,我使用了一个允许我连接/断开连接以及向我显示状态和数据的视图:
在一个单独的文件中,我拥有所有 BT 管理:
这些值最初设置正确,但从未更新。在终端中,我可以看到打印的值,并且应用程序按预期工作。我正在使用最新版本的 XCode。我看了几个教程,这似乎很棘手。任何帮助将不胜感激。
干杯,基督徒
编辑:这是完整的 BluetoothManager 类(主要不是我的代码,但工作正常):
foreach - 带有 EnviromentObject 的 forEach 中的 SwifUI 复杂内存泄漏
这段代码有一个奇怪的内存泄漏:
当 func getTest() 被多次调用时,forEach 循环会增加内存。当 EnvironmentObject testVar 被新的 Json 调用更新时,它不会创建新实例,而只是更新 foreach 循环
我不知道什么会造成这个问题,因为代码在我看来是正确的。有没有人有类似的经历?
非常感谢
swift - Swift 中的共享数据模型
ObservableObject 可以在 Swift 中使用吗?我只在 SwiftUI 中看到它的教程。我希望能够通过 API 调用将对象加载到内存中。然后用 VC 去操作它的不同部分,所有后续的 VC 都会响应它。
swiftui - 使用 ObservableObject 时如何保持对数据的引用
我是 Swiftui 的新手,我很难理解如何在渲染视图时正确保留在 ObservableObject 中创建的数据?或者一个完全不同的方法来解决这个问题?
更具体地说,它是关于在 List() 的每一行中获取 HTTP 数据。
现在,它在渲染父视图时过于频繁地进行 HTTP 调用,这会导致重新加载所有行。
可以在此处找到相同的问题:在视图更新后保留视图/数据模型的参考
列表()行:
swiftui - ObservableObject with NWPathMonitor
I try to make NWPathMonitor an observable object that returns true if there is a network connection and false if not.
Can you help me because my solution doesn't work.
Thanks
swiftui - 如何将我的 SwiftUI 视图的 @State 交换为我的视图模型 @Published 变量?
我有一个按钮可以触发我的视图状态。由于我现在添加了一个网络调用,我希望我的视图模型将 @State 替换为其 @Publihed 变量以执行相同的更改。
如何使用我的@Published 代替我的@State 变量?
所以这是我的 SwiftUI 视图:
这是我的模型:
swiftui - 为什么我的@ObservedObject 没有在我的视图中执行更改?
我有一个简单的加载器,它在 @Publisher 设置为 true 时执行加载动画。发出网络请求时,此发布者在 ViewModel 上设置为 true。我希望这个值能改变我的看法,但事实并非如此。显示的 ContentView 更复杂,其中包含许多视图,但它是所有视图的根视图。加载程序是一个 Lottie 视图,当手动将所有内容设置为 true 时,它可以完美运行。Loader 是一个独立的 @ObservableObject,因为我想在许多其他 ViewModel 中使用它。
为什么@ObservedObject var loader
从 ViewModel 设置时我的视图状态没有执行任何更改?
我的装载机:
我触发加载器的视图模型:(在控制台中,加载器的值正在相应地改变)
这是我希望魔法发生的 SwiftUI 视图:(它比这要复杂得多,子视图和组件在彼此内部)