正确地改变 BehaviorSubject 对象

Correctly Mutating BehaviorSubject Object

这是我的 Angular 服务的一部分:

private user = new User();
private user$ = new BehaviorSubject < User > (this.user);

public getUser(): Observable < User > {
  return this.user$.asObservable().share();
}

public setUser(user: User) {
  this.user$.next(user);
}

仅更改 user 中的一个 field/property 并重新发送整个对象的正确方法是什么?

您可以将您的状态建模为 scan 个事件。每个事件都会从之前的事件中生成新的状态(没有突变)。

看看这个例子 -