【发布时间】:2021-12-05 15:27:09
【问题描述】:
假设我们有一个类 Dog
class Dog {
let age = BehaviorRelay<Int>(value: 1)
}
在某个地方我们有一个包含所有狗的数组属性
let dogs = BehaviorRelay<[Dog]>(value: [..., ...])
现在我想创建需要在 UITableView 中列出的狗数组的 UI,并且当每只狗的年龄发生变化时,它想要更新(在后台调用 reloadDate)?
所以当我像这样订阅时:
dogs.subscribe(onNext: {
print("\($0)")
})
订阅会在新狗来数组时被触发,或者有些离开数组时会被触发,但不会在狗成熟时被触发,即:
dogs.value[1].age.accept(2)
我知道 flatMap 和 flatMapLatest,但他们似乎希望 Dogs 是普通类型,而不是数组。我是 RxSwift 的新手,任何帮助将不胜感激!
【问题讨论】:
-
我不喜欢有如此多的行为中继,但我将把它放在一边并回答这个问题......
-
@DanielT。我想说,如果你以真正的函数式方式编写——你基本上根本不需要它们,但如果 50% 的代码仍然是命令式的——你经常需要 .value