【发布时间】:2019-06-28 11:43:06
【问题描述】:
我需要在不触发对任何订阅的下一次调用的情况下设置我的 BehaviorSubject 的值。
我试过这样做:
this.mySubject = new BehaviorSubject(newVal);
但这也会删除所有订阅。
this.mySubject.value = newVal;
不起作用,因为 .value 是只读的。
有没有办法做到这一点?
编辑:对于那些问我为什么需要这样做的人......
这是一个 Ionic 4 应用程序,因此有一个根列表页面,它调用 2 个其他子页面(一个详细视图和一个编辑页面)。进入视图页面的第一个导航需要选择的模型。列表页面将此模型的初始值设置为 BehaviorSubject,然后导航到视图页面。但是,这个初始值的设置会触发列表的刷新,这是我不想做的。我只想初始化该值,然后在编辑页面更改它的情况下进行监听,然后刷新我的列表。
【问题讨论】:
-
呃?你为什么想这么做?主题的全部目的是在其值更改时向其所有订阅者发出...
-
嘿,请阅读核心贡献者 ben lesh 的这篇关于 BehaviourSubject 的帖子:stackoverflow.com/a/45227115/7247920 .. 基本上,你根本不应该使用
value;-) -
@Jota.Toledo 更新了问题,解释了我为什么需要这样做。
标签: angular rxjs behaviorsubject