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'))
