[英]SwiftUI State PropertyWrapper Behavior
我已经就与此相关的主题制定了一个先前的问题,但现在更具体地说:我很好奇@State
变量在闭包内的行为,显然从我测试的变量无法更新,我浏览了几篇文章,但找不到答案。 具体来说,这是我一直在处理的:
private let disposeBag = DisposeBag()
@State var eventsView = [Event]()
func setObserver(){
EventGroup.shared.events.asObservable()
.subscribe(onNext: {
[unowned self] events in
print("Events Resp: "+String(events.count))
self.eventsView = events
print("Events Count: "+String(self.eventsView.count))
})
.disposed(by: disposeBag)
}
上面打印的结果是:
Events Resp: 3
Events Count: 0
怎么会, eventsView
变量没有更新?
来自 Apple 的文档:
State 实例不是值本身; 这是一种读取和改变值的方法。 要访问一个状态的基础值,请使用它的 value 属性。
只能从视图主体内部(或从它调用的函数)访问 state 属性。 出于这个原因,您应该将您的 state 属性声明为私有,以防止您的视图的客户端访问它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.