Búsqueda de sitios web

typescript - Solo cambiar una propiedad de ReplaySubject


Tengo un ReplaySubject de tipo UserDetails.

userData: ReplaySubject<UserDetails>;

Esta clase tiene las siguientes propiedades, siendo dos opcionales:

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

Para detectar cambios en otros componentes mediante suscripción, hasta ahora siempre he usado this.user.next(value), pero ¿cómo puedo, por ejemplo, cambiar únicamente la propiedad shipping del objeto user?

Respuesta #1

usa distinctUntilKeyChanged para detectar el cambio en el envío, pero asegúrate de emitir el envío como un nuevo arreglo

// to emit
userData.next({ ...yourOriginalObject, shipping:[1,3....]})
// subcribe to shipping change
userData.pipe(distinctUntilKeyChanged('shipping'))