【问题标题】:RxSwift PublishSubject triggers unintentionally on initializationRxSwift PublishSubject 在初始化时无意触发
【发布时间】:2016-04-05 08:37:18
【问题描述】:

我正在尝试使用 PublishSubject 转发按钮点击。然而,这个 PublishSubject 会在初始化时触发,这会干扰我的逻辑。这就是我正在做的:

var buttonClick = PublishSubject<Void>()

(此初始化行将触发第一个 Next 事件)

然后在按钮点击动作上:

@IBAction func buttonClicked(sender: AnyObject) {
        buttonClick.onNext()
    }

然后我像这样订阅它:

buttonClick
            .asDriver(onErrorJustReturn: ())
            .driveNext { () in

            }.addDisposableTo(disposeBag)

有没有什么方法可以在不触发初始化时发布的第一个“Next”事件的情况下做到这一点?

干杯!

【问题讨论】:

  • 可以简单的使用rx_tap按钮的方法吗?
  • @MichałCiuba 这是一个更好的解决方案,是的!谢谢。但是,它仍然会触发第一个意外的 Next 事件。这就是我现在拥有的:emptyStateView.button.rx_tap .asDriver(onErrorJustReturn: ()) .driveNext { () in }.addDisposableTo(disposeBag)

标签: swift rx-swift


【解决方案1】:

按照@MichałCiuba 的建议,最终使用了rx_tap

关于意外的Next事件,原来只是断点因某种原因多次停止,但实际代码按预期工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    • 2021-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多