Hmm, isso é estranho. Fazer o truque de atribuição de array geralmente funciona.
Uma alternativa que encontrei é fazer com que os objetos no array sejam de uma classe com suas próprias propriedades rastreadas. Algo como:
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'),
...
];
// resto do seu código
}
Pode ser mais verboso do que criar um monte de objetos simples, mas descobri que facilita a extensão e a compreensão, especialmente se você precisar fazer algo como passar os dados para componentes aninhados.