Glimmer-Komponenten-Änderungserkennung funktioniert nicht – Mutieren von Eigenschaften im @tracked-Array

Hmm, das ist seltsam. Der Array-Zuweisungstrick funktioniert normalerweise.

Eine Alternative, die ich gefunden habe, besteht darin, die Objekte im Array aus einer Klasse mit eigenen nachverfolgten Eigenschaften zu machen. So etwas wie:

class CustomSidebarItem {
  @tracked expanded = false;
  constructor(id, label) {
    this.id = id;
    this.label = label;
  }
}

export default class CustomSidebarComponent extends Component {

  @tracked items = [
    new CustomSidebarItem('home', 'Home'),
    new CustomSidebarItem('my-posts', 'My Posts'),
    ...
  ];
  // Rest deines Codes
}

Es kann umständlicher sein als die Erstellung einer Reihe einfacher Objekte, aber ich habe festgestellt, dass es die Erweiterung und Argumentation erleichtert, insbesondere wenn Sie etwas tun müssen, wie z. B. die Daten an verschachtelte Komponenten weiterzugeben.

4 „Gefällt mir“