Всем добрый день
Начал осваивать NGRX.
Столкнулся с не очень понятным поведением
Вот такой код работает как надо
const nTimePeriodDate:Date = new Date(timePeriodDate.getFullYear(), timePeriodDate.getMonth(), dayNum);
const nSelectedDate:Date = new Date(timePeriodDate.getFullYear(), timePeriodDate.getMonth(), dayNum);
this.store$.dispatch(setTimePeriodDate({date: nTimePeriodDate }));
this.store$.dispatch(setSelectedDate({date: nSelectedDate }));
А вот такой же код с копированием объекта вызывает непонятные побочные эффекты
const nTimePeriodDate:Date = new Date(timePeriodDate.getFullYear(), timePeriodDate.getMonth(), dayNum);
const nSelectedDate:Date = {...nTimePeriodDate};
this.store$.dispatch(setTimePeriodDate({date: nTimePeriodDate }));
this.store$.dispatch(setSelectedDate({date: nSelectedDate }));
Копировать пробовал разными способами, побочки вылезают всегда, переменные из селектора начинают принимать неожиданные значения.
// Spread Method
let clone = { ...userDetails }
// Object.assign() Method
let clone = Object.assign({}, userDetails)
// JSON.parse() Method
let clone = JSON.parse(JSON.stringify(userDetails))
Входное значение timePeriodDate прилетает из селектора.
Можете объяснить в чем причина такого странного поведения или дать ссылочку что почитать?
Поведение копии объекта отличается от поведения объекта, созданного с нуля?