замена объекта коллекции с использованием оператора распространения - PullRequest
0 голосов
/ 22 ноября 2018

Я пытаюсь вернуть новый объект столбцов с обновленным массивом вкладок и заменить этот объект существующим в моем источнике данных.Вот соответствующая часть.Ниже, использует распространение, однако, он добавляет мой объект в конец столбцов.Как я могу заставить его заменить существующий столбец?Спасибо!

newState = {
  columns: [
    { id: column.id, title: column.title, tabs: removedTabs },
    ...state.columns
  ],
    columnOrder: ["chromeTabs", ...state.columnOrder]
};  

коды и ссылки на ящики

1 Ответ

0 голосов
/ 22 ноября 2018
newState = {
  columns: [
    ...state.columns.filter(item => item.id !== column.id),
    { id: column.id, title: column.title, tabs: removedTabs }
  ],
    columnOrder: [...state.columnOrder.filter(item => item !== 'chromeTabs'), "chromeTabs"]
};

возвращает отфильтрованный массив, и ваш новый элемент должен делать то, что вы ожидаете, используя оператор распространения, чтобы заменить существующий элемент, работать только над объектом (потому что ключ уникален), а не с массивом.

const obj = {
  cool: "is it cool ?"
};

console.log({ ...obj, cool: "definetly" });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...