Como usar trackBy com ngFor
Eu realmente não consigo entender do que devo retornartrackBy
. Com base nos exemplos que eu vi na web, devo retornar o valor de alguma propriedade no objeto. Está correto? Por que obtenho índice como parâmetro?
Por exemplo, no seguinte caso:
constructor() {
window.setInterval(() => this.users = [
{name: 'user1', score: Math.random()},
{name: 'user2', score: Math.random()}],
1000);
}
userByName(index, user) {
return user.name;
}
...
<div *ngFor="let user of users; trackBy:userByName">{{user.name}} -> {{user.score}}</div>
Os objetos mostrados no modelo ainda são atualizados, apesar do nome ser inalterado. Por quê?