Изменить только одно свойство ReplaySubject - PullRequest
1 голос
/ 26 сентября 2019

У меня есть ReplaySubject типа UserDetails.

userData: ReplaySubject<UserDetails>;

Этот класс имеет следующие свойства, два из которых являются необязательными:

export class UserDetails {
  name: string;
  email: string;
  shipping?: Address[];
  billing?: Address[];
}

Для обнаружения изменений в других компонентах по подписке, до сих пор я всегда использовал this.user.next(value) - нокак я могу, например, изменить только свойство shipping объекта пользователя?

1 Ответ

1 голос
/ 26 сентября 2019

используйте distinctUntilKeyChanged для получения изменений в доставке, но убедитесь, что вы отправляете отправку как новый массив

// to emit
userData.next({ ...yourOriginalObject, shipping:[1,3....]})
// subcribe to shipping change
userData.pipe(distinctUntilKeyChanged('shipping'))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...