@pankratov_tolik

Почему меняются данные в Стейте при удалении элемента с другого массива?

Я не хочу что бы менялся стейте, но не могу понять в чем взаимосвязь стейте с этим массивом

export const SHOW_RESULTS_WHEN_NOTHING = (state) => {
    let selectedFilters = {...state.selected.filters},
        arrayWithFilters = []; //Я удаляю элемент с этого массива, ниже в фориче, и тот же элемент удаляется из объекта стейте state.selected.filters

    for (let filter in selectedFilters) {
        arrayWithFilters.push(selectedFilters[filter])
    }

    arrayWithFilters.forEach((filter) => {

        if (filter.values.includes('qcontrast')) {

            filter.values.splice('qcolor', 1);
            console.log(filter)

        }
    })

}
  • Вопрос задан
  • 58 просмотров
Пригласить эксперта
Ответы на вопрос 1
Robur
@Robur
Знаю больше чем это необходимо
вы удаляете не с массива, а с объекта который лежит в массиве (filter.values). Этот же объект лежит и в другом массиве, где бы вы его не поменяли - поменяется везде.
Делайте полную копию каждого элемента в arrayWithFilters.push(...).
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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