Переменная состояния изменена даже при использовании оператора распространения - PullRequest
0 голосов
/ 01 мая 2018

Я использую Angular 5 и ngrx с rxjs 5.5. У меня есть свойство в состоянии выборки, которое является объектом со свойством filters.

В одном случае я пытаюсь сделать копию текущего выделения в новой переменной 'filters' и изменить свойство'thing '.

Когда я запускаю код, я вижу, что срез выбора состояния изменяется на значение, установленное в эффекте, даже если я не изменяю этот срез напрямую, и я использую оператор распространения.

Я также пытался использовать цикл for вместо map, и результат тот же.

// effect.ts

// Initialise filters using the spread operator
const filters = [
       ...selection.filters // Taken from the store
];

// Filters is a list of objects of type {key: {something: string}}
filters.map(filter => {
    for (const key in filter) {
        if (filter.hasOwnProperty(key)) {
              filter[key].something = this.auxService.get(filter[key].something);
        }
    }
    // At this point selection.filters in the store has been modified
});
...