问题标签 [behaviorrelay]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
27 浏览

rx-swift - 如何将 NSManagedObject 类类型转换为 Any 以在 RxSwift 中创建 BehaviorRelay 对象?

我的 coredata datamodelid 中有一个名为“CartItem”(NSManagedObject类)的实体。想在 RxSwift 中将变量更改为 BehaviorRelay,但我得到一个编译时错误,说明“ [Any] is not convertible to CartItem”。如何将变量更改为 BehaviorRelay?

0 投票
0 回答
999 浏览

ios - Observable 是 Observing BehaviorRelay 只调用一次。RxSwift

我有 AparentView持有两个不同的CollectionViwes. 每个视图都通过将数据传递给Observableusing 来从数据库中填充BehaviorRelay。一切正常,直到我必须collection_view_2collection_view_1. 我正在做的是BehaviorRelay像以前一样传递获取的数据ParentView。但是我看到的是这次点击collection_view_1's单元格ObservableStudentCell没有被调用。我无法弄清楚为什么它会那样做。我见过其他 SO 问题,但没有人有答案来解决这个问题。请查看下面的代码以更好地理解。

Collection_view_1

Collection_view_2

ParentView_Controller

轻按collection_view_1Collection_view_2应该更新数据。并相应地改变观点。在我的另一个观点中,我正在做同样的事情,但不同的是。这不是从任何其他 CollectionViewcollectionView获取更改引用。buttonClick任何对我的问题进行评分的帮助将不胜感激。谢谢

0 投票
1 回答
430 浏览

swift - RxSwift:compactMap 从未执行

我正在尝试实施compactMapRxSwift但似乎从未执行过。

这是我的代码:

当我更改永远不会被调用subject的值时。compactMap为什么不?

0 投票
1 回答
94 浏览

ios13 - RxSwift:停止 compactMap 以继续执行

我已经实施compactMapBehaviorRelay,它工作得很好:

我的问题是,如果出于某种原因我想取消/停止BehaviorRelay. 有办法取消/停止compactMap吗?

0 投票
1 回答
1020 浏览

swift - How do you edit a property of the current value inside a BehaviorRelay?

I'm very new to RxSwift and RxCocoa and I've recently made heavy use of Variable because of how convenient it is to just push mutations into the Variable through its value. Now that it is deprecated I'm trying to understand how best to use BehaviorRelay instead. There's an Rx-y way of doing what I want to do, but I'm having a hard time landing on it.

What I want is to put an instance of struct-based model behind a ViewModel and observe changes to it and bind UI elements in such a way that I can mutate that model through the BehaviorRelay.

The model is simple:

So is the View Model:

Then somewhere you would maybe bind a UITextField to the BehaviorRelay like so:

The question becomes: if you need to push values from the text field back into the BehaviorRelay how should that work?

I'm probably not using the correct types here or I'm not thinking in the correct Rx-fashion in-terms of streams of inputs/outputs, but I'm curious how others might approach this problem?

Other things I've considered:

  • Just reconstructing a new Pizza in the .subscribe using current value in the BehaviorRelay, mutating the name and then .accept-ing that back into the relay. That doesn't feel exactly right, though.
  • Creating individual BehaviorRelay's for each property I want to mutate on my Pizza, then .accept-ing values for each property and then using combineLatest on all those relays and returning a Observable<Pizza>. But that feels clunky also.

How should this work in an ideal world? Am I thinking about this incorrectly? Help! My head hurts.

0 投票
2 回答
6146 浏览

swift - RxSwift:BehaviorSubject 和 BehaviorRelay 的使用区别是什么?

我知道BehaviorRelay正在替换,并且Variable两者都以初始值开头,并将其或最新值重播给订阅者。BehaviorSubjectBehaviorRelay

那有什么区别呢?在这种情况下,您会使用其中一种?

0 投票
1 回答
34 浏览

swift - 从视图返回时,Rx BehaviorRelay 不保留数据

我有一个有 3 个视图和一个服务逻辑层的应用程序。服务一直在向所有这些视图发送消息。我用来控制所有这些数据的方法是使用 RxBehaviorRelay。

到目前为止,一切都很好,我将变量与服务层匹配,并且我在 ViewController 1、2 和 3 中接收数据。

当我在view2上然后转到view3并返回view2时,问题就来了。在此返回时,我丢失了所有更改,而 BehaviorRelay 对象就像开始一样。

应用图

我在 view1 中的代码是这样的

视图代码2

在服务层上,我只接收更改并放入 BehaviorRelay 对象。

正如我所说,我获得了 view2 中的所有更改,但是当我移至 view3 并返回 view2 时,更改消失了。

对不起我的英语不好。谢谢

0 投票
1 回答
38 浏览

swift - RxSwift modelSelected Drive model on model View & Get that model on DetailView

这是我的 FirstView(父视图)

这是 ViewModel ( BehaviorRelay )

这是我的 SecondView(子视图)

我只能获得默认模型数据。

我想获取有关子视图的当前数据