@angularBeginner

Почему при копировании объекта возникают побочные эффекты в NGRX?

Всем добрый день

Начал осваивать 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 прилетает из селектора.

Можете объяснить в чем причина такого странного поведения или дать ссылочку что почитать?
Поведение копии объекта отличается от поведения объекта, созданного с нуля?
  • Вопрос задан
  • 66 просмотров
Решения вопроса 2
@Azperin
Дилетант
Если проблема именно с копированием, можешь попробовать
https://developer.mozilla.org/en-US/docs/Web/API/s...
Ответ написан
@angularBeginner Автор вопроса
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы