如何从另一个变量或 Observable 观察一个变量?

Posted

技术标签:

【中文标题】如何从另一个变量或 Observable 观察一个变量?【英文标题】:How to observe a Variable from another Variable or Observable? 【发布时间】:2017-12-19 05:44:37 【问题描述】:

假设我有一个var id = Variable<Int>(0)。我想从另一个名为 team (var team = Observable<Team>) 的变量或 Observable 中观察它的变化。团队可观察对象将被视图控制器观察并在那里更新 UI。因此, id 变量仅用于创建/更新(通过创建 Team(id: id) )团队 observable 的值。

我一直在尝试多种方法,例如combineLatestsubscribe,但我总是收到编译错误消息:

闭包不能隐式捕获变异的 self 参数

发生了什么事?

【问题讨论】:

你能试着进一步解释你在这里想要做什么吗?这个问题有点不清楚。您尝试过的一些代码也会很棒:) rgoncalv 下面发布的答案是否为您解决了问题? 【参考方案1】:

您的Team(id:) 实例很可能是一个按值(值类型)而不是按引用(引用类型)传递的结构,因此它在离开主线程时无法捕获self。请参阅swift programming guide中的“类和结构”

将您的结构更改为一个类,它应该可以按预期工作:Simple observable struct with RxSwift?

【讨论】:

以上是关于如何从另一个变量或 Observable 观察一个变量?的主要内容,如果未能解决你的问题,请参考以下文章

如何从另一个变量<[Team]> 观察变量<[Game]>?

从另一个对象观察 @Published 变量

听 observable 直到或直到另一个 observable 触发

如何在 React Context 中实现 observable 观察值

Observable类API

如何从 TextInput(onChange 或 onTextChange)创建 rxjs Observable