问题标签 [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.

0 投票
1 回答
803 浏览

swift - SwiftUI 致命错误:未找到类型的 ObservableObject

我想在我的应用程序中有一个点,我可以在其中存储一些数据并快速访问它。在 SwiftUI 之前,我只是ApplicationDelegate为了这个目的。在我只需要调用 kind of 之前appDelegate.userService,它为我提供了应用程序中的一个点,该点已初始化一次。没有更多的单例,只是 appDelegate。

现在我找到了这个教程如何使用@EnvironmentObject

我在这里添加了这段代码来初始化我的 userService:

在我看来,我也有这段代码:

在上面,LoginView我有一个通过电子邮件从服务器获取用户的功能:

但是当我尝试调用getUser函数时,我得到了这个错误:

这是我的用户服务:

主要问题是如何解决上述问题?

我也有附带问题:

  1. 我是否需要设置这个环境单例对象(@EnvironmentObject)或者最好像以前一样使用 AppDelegateappDelegate.userService并将所有需要的数据存储在那里,我看不出这个东西有什么好处。
  2. 如果有一些优势,我是否需要创建用户服务,ObservableObject因为对我而言,用户服务更多的是关于执行某些功能(获取用户数据、更新服务器上、本地存储中的用户数据等),而不是数据模型层我们需要观察。这里完全糊涂了。在我上面提供的链接中,Paul 将其ObservableObject用于应用程序设置,但不确定这是否正确。
  3. 在我的示例中,我尝试从服务器获取用户并在获取后更新用户服务中的用户,这是正确或干净的设计代码还是我想多了?
0 投票
2 回答
10545 浏览

ios - SwiftUI:执行函数时如何从观察到的对象中捕获变化的值

我在 SwiftUI 中观察到的对象有问题。我可以在 View 结构上看到观察对象的值发生变化。但是在类或函数中,即使我更改了 TextField(这是可观察对象)的文本值,但“self.codeTwo.text”仍然没有改变。

这是我的代码示例(这是我的 ObservableObject)

主要问题是......“self.codeTwo.text”从未改变!

这是视图,我可以捕捉到这个值的变化

请帮帮我。

0 投票
1 回答
167 浏览

swiftui - SwiftUI ObservableObject 和已发布问题

这已经让我醒了三天:我正在编写一个将 va BT 连接到 Arduino 的小应用程序。为了获得关于连接状态和传输数据的视觉反馈,我使用了一个允许我连接/断开连接以及向我显示状态和数据的视图:

在一个单独的文件中,我拥有所有 BT 管理:

这些值最初设置正确,但从未更新。在终端中,我可以看到打印的值,并且应用程序按预期工作。我正在使用最新版本的 XCode。我看了几个教程,这似乎很棘手。任何帮助将不胜感激。

干杯,基督徒

编辑:这是完整的 BluetoothManager 类(主要不是我的代码,但工作正常):

0 投票
1 回答
1028 浏览

ios - 如何在 SwiftUI 中更新 TextField 的值?

所以,我想在更新 TextField 的值后更改光标位置(输入掩码,如“+7 000 000 00 00”)。

我有文本字段:

和检查类:

当我更新 TextField 的值时,光标不会改变位置。

截屏:

[

0 投票
0 回答
205 浏览

foreach - 带有 EnviromentObject 的 forEach 中的 SwifUI 复杂内存泄漏

这段代码有一个奇怪的内存泄漏:

当 func getTest() 被多次调用时,forEach 循环会增加内存。当 EnvironmentObject testVar 被新的 Json 调用更新时,它不会创建新实例,而只是更新 foreach 循环

我不知道什么会造成这个问题,因为代码在我看来是正确的。有没有人有类似的经历?

非常感谢

0 投票
1 回答
68 浏览

swift - Swift 中的共享数据模型

ObservableObject 可以在 Swift 中使用吗?我只在 SwiftUI 中看到它的教程。我希望能够通过 API 调用将对象加载到内存中。然后用 VC 去操作它的不同部分,所有后续的 VC 都会响应它。

0 投票
1 回答
144 浏览

swiftui - 使用 ObservableObject 时如何保持对数据的引用

我是 Swiftui 的新手,我很难理解如何在渲染视图时正确保留在 ObservableObject 中创建的数据?或者一个完全不同的方法来解决这个问题?

更具体地说,它是关于在 List() 的每一行中获取 HTTP 数据。

现在,它在渲染父视图时过于频繁地进行 HTTP 调用,这会导致重新加载所有行。

可以在此处找到相同的问题:在视图更新后保留视图/数据模型的参考

列表()行:

0 投票
1 回答
744 浏览

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

0 投票
2 回答
874 浏览

swiftui - 如何将我的 SwiftUI 视图的 @State 交换为我的视图模型 @Published 变量?

我有一个按钮可以触发我的视图状态。由于我现在添加了一个网络调用,我希望我的视图模型将 @State 替换为其 @Publihed 变量以执行相同的更改。

如何使用我的@Published 代替我的@State 变量?

所以这是我的 SwiftUI 视图:

这是我的模型:

0 投票
1 回答
58 浏览

swiftui - 为什么我的@ObservedObject 没有在我的视图中执行更改?

我有一个简单的加载器,它在 @Publisher 设置为 true 时执行加载动画。发出网络请求时,此发布者在 ViewModel 上设置为 true。我希望这个值能改变我的看法,但事实并非如此。显示的 ContentView 更复杂,其中包含许多视图,但它是所有视图的根视图。加载程序是一个 Lottie 视图,当手动将所有内容设置为 true 时,它​​可以完美运行。Loader 是一个独立的 @ObservableObject,因为我想在许多其他 ViewModel 中使用它。

为什么@ObservedObject var loader从 ViewModel 设置时我的视图状态没有执行任何更改?

我的装载机:

我触发加载器的视图模型:(在控制台中,加载器的值正在相应地改变)

这是我希望魔法发生的 SwiftUI 视图:(它比这要复杂得多,子视图和组件在彼此内部)