如何使用 RxSwift 传递多个参数?
Posted
技术标签:
【中文标题】如何使用 RxSwift 传递多个参数?【英文标题】:How to pass multiple parameters with using RxSwift? 【发布时间】:2020-02-18 02:56:09 【问题描述】:我用下面的代码来传递单个参数。
lazy var priceListData: Observable<FoodPrice> =
return self.foodNamesparams1.asObservable()
.flatMapLatest(ApiCallViewModel.foodList(_:))
但我不知道如何传递多个参数..
如果我需要将foodNamesparams1
、foodNamesparams2
传递给ApiCallViewModel.foodList
我怎样才能用 RxSwift 做到这一点?
foodNamesparams1
和foodNamesparams2
都是BehaviorRelay
【问题讨论】:
查看***.com/questions/34095592/… 这可能会有所帮助:medium.com/@danielt1263/… 【参考方案1】:您很可能希望首先组合参数,最有可能通过combineLatest
或zip
。
这看起来像这样
Observable.combineLatest(
foodNamesparams1.asObservable(),
foodNamesparams2.asObservable()
)
.flatMapLatest(ApiCallViewModel.foodList)
CombineLatest 不会发出任何东西,除非两个组合的 observable 都至少发出一次 - 然后它将提交任何一个组合的 observable 的更新。
在此处查看组合部分 http://reactivex.io/documentation/operators.html#combining寻找最适合的组合方法
【讨论】:
哦!我得到了它!谢谢! :-)以上是关于如何使用 RxSwift 传递多个参数?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 RxSwift 和 RxSwiftDataSources 将表视图与表示不同数据类型的多个部分绑定?