swift - SwiftUI 和 RxSwift 观察者关闭行为
问题描述
我正在使用 RxSwift 和 SwiftUI 构建一个 iOS 应用程序。我对这些框架完全陌生,所以我一直在学习一些教程,但是我很难弄清楚如何设置与 SwiftUI 结合的观察者,而我想在我BehaviorRelay
的事件列表中不断更新我的 UI已更新,这是我的 UI 中的内容:
import SwiftUI
import RxSwift
struct EventsTableView: View {
private let observer: EventsTableObserver = EventsTableObserver()
init() {
observer.setObserver()
EventViewModel.getAllEvents()
}
var body: some View {
List{
ForEach(observer.events_view,id: \.id) { event in
HStack {
Text(event.title)
}
}
}
}
}
class EventsTableObserver {
private let disposeBag = DisposeBag()
var events_view = [Event]()
func setObserver(){
EventGroup.shared.events.asObservable()
.subscribe(onNext: {
[unowned self] events in
self.events_view = events
})
.disposed(by: disposeBag)
}
}
问题是,显然在我的关闭结束后self.events_view
,即使事件正在更新,也没有按照我的意愿保留存储的事件值。有人可以在这里给我一个方向吗?
解决方案
推荐阅读
- java - Java程序以编程方式查找数学系列的总和
- python-3.x - 如何在python中测试具有无限循环的方法
- javascript - 如何自动重置倒计时?
- powershell - 检测方法-powershell-registry
- express - 如何设置 2 个具有相同域的快速服务器
- c# - 在不是 HTTP 服务器实现的 .Net 通用主机中使用 AddHttpClient 时无法解析 HttpClient
- angular - 组件库中的 ComponentFactoryResolver
- amazon-s3 - 使用 spark 从 S3 读取禁止错误
- python - Python3中的一组一个元组
- javascript - 是否可以使用带有字符串的变量来识别另一个变量?