पर आधारित एक अवलोकन योग्य बनाएं, मैं एक अवलोकन योग्य बनाने की कोशिश कर रहा हूं जो एक चर के मूल्य के आधार पर मूल्य का उत्पादन करेगा।RxSwift एक वेरिएबल
कुछ इस तरह:
let fullName = Variable<String>("")
let isFullNameOKObs: Observable<Bool>
isFullNameOKObs = fullName
.asObservable()
.map { (val) -> Bool in
// here business code to determine if the fullName is 'OK'
let ok = val.characters.count >= 3
return ok
}
दुर्भाग्य से नक्शा समारोह में गुट कभी नहीं कहा जाता है!
- FULLNAME चर द्विदिश ऑपरेटर < के साथ एक UITextField से आबद्ध है -> RxSwift उदाहरण में परिभाषित के रूप में:
इसके पीछे कारण यह है कि है।
- isFullNameOKObs Observable पर देखा जाएगा मेरे व्यू कंट्रोलर के सबमिट बटन को छुपाएं या प्रदर्शित करें।
किसी भी मदद की सराहना की जाएगी।
धन्यवाद
मॉडल
class Model {
let fullName = Variable<String>("")
let isFullNameOKObs: Observable<Bool>
let disposeBag = DisposeBag()
init(){
isFullNameOKObs = fullName
.asObservable()
.debug("isFullNameOKObs")
.map { (val) -> Bool in
let ok = val.characters.count >= 3
return ok
}
.debug("isFullNameOKObs")
isRegFormOKObs = Observable.combineLatest(
isFullNameOKObs,
is...OK,
...) { $0 && $1 && ... }
isRegFormOKObs
.debug("isRegFormOKObs")
.asObservable()
.subscribe { (event) in
// update the OK button
}
// removing this disposedBy resolved the problem
//.disposed(by: DisposeBag())
}
}
ViewController:
func bindModel() -> Void {
_ = txFullName.rx.textInput <-> model!.fullName
......
}
हल, लेकिन मैं कैसे समझ में नहीं आता। मैं फॉर्म के प्रत्येक टेक्स्टफिल्ड के लिए एक ही पैटर्न का उपयोग करता हूं: एक अवलोकन योग्य नाम MyTextFieldOK है जो कुछ व्यावसायिक नियमों की गणना करता है। एक अंतिम अवलोकन जो कि एक गठबंधन है, सबसे महत्वपूर्ण है MyTextFieldOK अवलोकन। मैंने इस अंतिम अवलोकन योग्य पर एक डिस्पोजेड (द्वारा: डिस्पोजेबैग) कॉल किया था। इसे हटाने से सबकुछ हल हो गया। लेकिन मुझे नहीं पता क्यों। :-( – t4ncr3d3