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

Posted

技术标签:

【中文标题】如何从另一个变量<[Team]> 观察变量<[Game]>?【英文标题】:How to observe Variable<[Game]> from another Variable<[Team]>? 【发布时间】:2017-12-17 16:03:07 【问题描述】:

如何从一组团队(Variable&lt;[Team]&gt;)中观察Variable&lt;[Game]&gt;,以便每次出现GameVariable&lt;[Game]&gt; 在游戏数组被修改后发生变化)时,Team 的数组应该相应地更新,例如为参与比赛的两支球队分配积分、胜利、平局、失败和净进球数?

我尝试过使用subscribe(onNext:),但正如我所读到的,视图模型不应该包含DisposeBags 这样的东西。由于我是 RxSwift 新手,如何从 Variable&lt;[Team]&gt; 观察 Variable&lt;[Game]&gt; 的变化?

【问题讨论】:

你说游戏“上来”是什么意思? 我从服务器或数据库中检索它。不过,我不认为问题取决于我如何获得 Game,而是如何将 Team 数组链接到 Game 数组 @ryantxr,查看我的更新。我所说的“游戏出现”的意思是 Variable&lt;[Game]&gt; 通过附加游戏而发生变化 您真的需要“[团队]”作为变量吗?如果不是,最好将其定义为 let teams = games.scan(...) 甚至 games.flatMap(...)从 RxSwift 4.0.0 开始,Variable 被弃用,取而代之的是 BehaviorRelay。 【参考方案1】:

如何将团队数组链接到游戏数组

那么,如何引入Teams 对象或将games 移动到Team 对象。您可以将推送接口封装在Team 中,也可以将其作为依赖项传递。您遇到的实际问题似乎是您的 TeamGame 只是 DTO。使它们成为对象而不是数据结构。

【讨论】:

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

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

如何从另一个小部件更改有状态小部件的变量?

如何从另一个文件替换变量的值

如何在swiftUI的父视图中从另一个视图访问变量?

如何根据从另一个可观察对象返回的数组中的键创建可观察/ http请求数组

从另一个php文件中获取变量