ОШИБКА TypeError: this.dataSource.findIndex не является функцией - PullRequest
0 голосов
/ 09 января 2020

У меня есть это:

    removeSelectedRows() {

    this.selection.selected.forEach(item => {
      let index: number = this.dataSource.findIndex(d => d === item);
       console.log(this.dataSource.findIndex(d => d === item));
       this.dataSource.splice(index,1)
       this.dataSource = new MatTableDataSource<Element>(this.dataSource);
}

Я хочу удалить выбранные строки, и я нашел этот код в inte rnet, но выдает ошибку:

RefactorComponent.html:12 ERROR TypeError: this.dataSource.findIndex is not a function
    at refactor.component.ts:65
    at Array.forEach (<anonymous>)
    at RefactorComponent.removeSelectedRows (refactor.component.ts:64)
    at Object.eval [as handleEvent] (RefactorComponent.html:12)
    at handleEvent (core.js:43993)
    at callWithDebugContext (core.js:45632)
    at Object.debugHandleEvent [as handleEvent] (core.js:45247)
    at dispatchEvent (core.js:29804)
    at core.js:42925
    at HTMLButtonElement.<anonymous> (platform-browser.js:2668)

Мне нужно, чтобы вы заняли позицию выбранной строки, чтобы удалить ее из источника данных. Я использую angular 8.

1 Ответ

1 голос
/ 09 января 2020

если ваш источник данных определен так

this.dataSource = new MatTableDataSource<Element>(dataArray);

, вам нужно вызвать метод findIndex для this.dataSource.data вот так

this.dataSource.data.findIndex(d => d === item);
...