Anguar 2:ngFor 在使用管道时不断重新渲染

问题描述

我有一个简单的表格:

<tr *ngFor="let daTarow of data; trackBy:trackByIdentifier">
   <td *ngFor="let dataCell of daTarow.listRow | visibleColumns; trackBy:trackByColumnName">
   ...
   </td>
</tr>

trackByColumnName(index: number,el:any):string {
  return el.columnName;
}

trackByIdentifier(index: number,element: any): string {
  return element.rowIdentifier;
}

我在开发工具中看到,tr 一直在渲染

我发现当我移除 visibleColumns 管道时,它会停止重新渲染。

这是简单的管道:

import { Pipe,PipeTransform } from '@angular/core';

@Pipe({
  name: 'visibleColumns',pure: false
})
export class VisibleColumnsPipe implements PipeTransform {

  transform(items: any[]): any {
    if (!items) {
      return items;
    }
    let newList = items.filter(item => !item.notVisible);
    return newList;
  }
}

我应该怎么做才能使其性能更好?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)