繁体   English   中英

SwiftUI State PropertyWrapper 行为

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM