当前位置:  开发笔记 > 编程语言 > 正文

是否有一种方法可以在定义后以声明方式将更新推送到observable?

如何解决《是否有一种方法可以在定义后以声明方式将更新推送到observable?》经验,为你挑选了0个好方法。

我正在探索Rx,我想看看在初始化此元素的组件之前,是否可以声明性地相互定义某些UI元素的输入输出.

这就是它的样子:

class ViewController: UIViewController {
    @IBOutlet weak var button: UIButton!

    var child: ButtonComponent!

    override func viewDidLoad() {
        super.viewDidLoad()

        let buttonInput = PublishSubject<()>()
        let buttonOutput = buttonInput
            .scan(0) { count, _ in
                count + 1
            }
            .map { $0.description }

        self.child = ButtonComponent(
            button: self.button,
            input: buttonInput,
            output: buttonOutput
        )
    }
}

class ButtonComponent {
    weak var button: UIButton!
    let disposeBag = DisposeBag()

    init(button: UIButton, input: PublishSubject<()>, output: Observable) {
        self.button = button

        output
            .subscribeNext { string in
                button.setTitle(string, forState: .Normal)
            }
            .addDisposableTo(disposeBag)

        button.rx_tap
            .subscribeNext {
                input.onNext($0)
            }
            .addDisposableTo(disposeBag)
    }
}

这里的问题是我正在使用PublishSubject将更新推送到输入流,这是必要的并且建议不要使用.Rx是否提供了以某种方式将序列添加到已运行的observable的方法?

推荐阅读
围脖上的博博_771
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有