0
當用戶點擊一個按鈕時,我會顯示一個選擇屏幕。結果被傳遞到我的視圖模型。代碼如下所示:RxSwift - 重播的點擊事件
locationButton.rx.tap
.flatMapLatest(wireframe.displayPlaceSelection)
.filterNil()
.map(DiscoverLocationSelection.location)
.subscribe(onNext: viewModel.updateLocation(with:))
.disposed(by: disposeBag)
此代碼工作正常,用戶可以選擇一個位置,並將按鈕返回到此屏幕。
如果用戶再次點擊該按鈕,displayPlaceSelection()
函數被調用兩次。如果用戶第三次這樣做,該函數將被調用3次。這導致多個視圖控制器被推在彼此之上。
如何阻止堆疊起來的這些事件?
的大意是這樣的:當你打開這個VC,因此你有很多用戶輕敲事件
我可以假設每次打開此vc時都會調用此代碼(訂閱),因此您有許多訂閱者可以使用該點擊事件。這段代碼在哪裏?例如,「viewDidLoad」或「viewWillAppear」。 –
你完全正確!非常感謝。 請發表評論作爲回答,我會接受它。 –