Angular Redux с Angular Material Table рендерится медленно - PullRequest
0 голосов
/ 08 ноября 2018

В настоящее время я использую Angular 7 Mat Table для отображения данных в таблице. Я также использую шаблон Redux с Angular Store. Я добавил дополнительную функцию, где пользователь может щелкнуть строку, и она расширяется. Я загружаю курсы в ngOnInit

this.store.dispatch(new courseActions.Load());

Тогда подписывайтесь на изменения в магазине

this.store.pipe(select(fromCourses.getCourses))
    .subscribe(courses => {
      this.dataSource = new MatTableDataSource(courses);
    })

Действие по открытию строки

export class OpenRow implements Action {
    readonly type = CourseActionTypes.OpenRow; 
    constructor(public payload: ICourse) {}
}

В ICourse есть свойство show, где при значении false строка закрывается, а при значении true она открывается. Проблема сейчас в том, что повторный рендеринг данных каждый раз при щелчке строки выполняется медленно (это занимает около секунды, 700 строк). Первоначально я не использовал шаблон избыточности, но из-за сложности приложения решил, что было бы лучше сделать это, для каждого ряда данных можно выполнить несколько запросов http, существуют другие части приложения, которые используют данные. Я мог бы отделить этот аспект от использования шаблона избыточности, но есть http-вызовы, которые будут манипулировать данными в строках, и их нужно будет повторно обработать.

Есть ли более чистый и быстрый способ сделать это?

...