我觉得我已经开始了解RxSwift - 不过我只是遇到了障碍.这是我为演示构建的一个对象(我在发布到SO之前简化了它).我的问题是,当上传过程中出现网络错误时,所有订阅都会被处理掉.所以当我rightBarButtonItem再次点击时,没有任何反应.
什么是正确/更好的建模方法?我不确定我PublishSubject是否正确掌握了s 的用法!
let activityIndicator = ActivityIndicator()
let disposeBag = DisposeBag()
let rx_upload = PublishSubject<Void>()
let rx_progress = PublishSubject<RxProgress>()
let rx_uploadComplete = PublishSubject<Look>()
override init() {
super.init()
activityIndicator
.drive(UIApplication.sharedApplication().rx_networkActivityIndicatorVisible)
.addDisposableTo(disposeBag)
let upload = rx_upload
.debug("Upload")
.flatMapLatest { [unowned self] -> Observable<(JSON?, RxProgress)> in
return self.upload()
}
.share()
upload
.map { $0.1 }
.debug("Upload Progress")
.bindTo(rx_progress)
.addDisposableTo(disposeBag)
upload
.filter { $0.0 != nil }
.map { Post(jsonData: $0.0!) }
.filterNil()
.debug("Upload Complete")
.bindTo(rx_uploadComplete)
.addDisposableTo(disposeBag)
} …Run Code Online (Sandbox Code Playgroud) 我目前正在为 WooCommerce 开发自定义运输方式插件。为了计算运费,我需要访问客户的电话号码和/或电子邮件地址。
目前,在结帐页面中更改或输入值时,我可以看到特定结帐字段(如邮政编码、城市、州或国家/地区)的结帐运输方式已刷新。
当用户输入电子邮件或电话号码时,如何触发相同的重新加载?