Glimmer コンポーネントの変更検出が機能しない - @tracked 配列内のプロパティの変更

うーん、それは奇妙ですね。配列の代入トリックは通常機能します。

別の方法として、配列内のオブジェクトを、独自の追跡プロパティを持つクラスにすることを見つけました。たとえば次のようになります。

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'),
    ...
  ];
  // 残りのコード
}

プレーンなオブジェクトを多数作成するよりも冗長になる可能性がありますが、特にネストされたコンポーネントにデータを渡すようなことを行う必要がある場合、拡張や推論が容易になると考えています。

「いいね!」 4