Size: a a a

2020 July 17

А

Алекс in Angular Kyiv
Danil Gudz
нельзя мутировать данные просто, это нужно запомнить, везде и всегда
Что значит мутировать, пришли в компонент данные, строим метриал таблицу на основании пришедших данных, работаем с таблицей(MATERIAL) с ее методами, каким боком меняется то что пришло не могу понять
источник

DG

Danil Gudz in Angular Kyiv
метод сплайс мутирует массив
источник

DG

Danil Gudz in Angular Kyiv
мы с таблицей материал должны работать через человеческое public api
источник

А

Алекс in Angular Kyiv
ок щас изображу реальный код
источник

DG

Danil Gudz in Angular Kyiv
то что у тебя ide подсвечивает когда пишешь arr2.
источник

DG

Danil Gudz in Angular Kyiv
тем можно пользоваться и то что не начинается с нижнего подчеркивания
источник

DG

Danil Gudz in Angular Kyiv
я ж уже написал код который по идее должен работать)))
источник

DG

Danil Gudz in Angular Kyiv
const newData = [...arr2.data];
newData.splice(index, 1);
arr2.data = newData;
источник

А

Алекс in Angular Kyiv
public tableContractorGroup:any;  
 public displayedColumnsContractorGroup: string[] =
   [
      'mat-icon',
     'nodeName',
         
   ];

this.tableContractorGroup = new MatTableDataSource( tableContractorGroup);
 this.tableContractorGroup.data.splice(index,1);
   this.tableContractorGroup._updateChangeSubscription();
почему  tableContractorGroup ==   tableContractorGroup после this.tableContractorGroup.data.splice(index,1)
источник

RM

Roman Martyniuk in Angular Kyiv
просто держи в голове что ты работаешь с массивом по ссылке
если ты каким-то боком меняешь его, то он и в таблице измениться
никто тебе копировать массивы (я про маттейбл) не будет, просадки по памяти пойдут
newData = [...arr2.data] нет смысла делать, так как внутри элементы могут иметь свои объекты, и мутация будет в любом случае
только глубокое копирование через рекурсию, но если ты это собираешься делать - подумай, что-то идет не так)
источник

А

Алекс in Angular Kyiv
в материале достучаться к массиву через .data - если по другому то как ?
источник

RM

Roman Martyniuk in Angular Kyiv
смотри
вопрос в самой задачи
тебе надо удалить элемент в исходном массиве, но что-бы он остался в таблице?
источник

DG

Danil Gudz in Angular Kyiv
Roman Martyniuk
просто держи в голове что ты работаешь с массивом по ссылке
если ты каким-то боком меняешь его, то он и в таблице измениться
никто тебе копировать массивы (я про маттейбл) не будет, просадки по памяти пойдут
newData = [...arr2.data] нет смысла делать, так как внутри элементы могут иметь свои объекты, и мутация будет в любом случае
только глубокое копирование через рекурсию, но если ты это собираешься делать - подумай, что-то идет не так)
wat??
источник

А

Алекс in Angular Kyiv
нет
источник

А

Алекс in Angular Kyiv
прищел массив
источник

А

Алекс in Angular Kyiv
строю маетриал на соновании
источник

А

Алекс in Angular Kyiv
работаю с таблицей
источник

А

Алекс in Angular Kyiv
удаляю строки
источник

А

Алекс in Angular Kyiv
все работает
источник

А

Алекс in Angular Kyiv
почему при этом у меня меняется исходный массив
источник