Hmm, eso es raro. Hacer el truco de asignación de arrays normalmente funciona.
Una alternativa que he encontrado es hacer que los objetos en el array sean de una clase con sus propias propiedades 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 de tu código
}
Puede ser más verboso que crear un montón de objetos planos, pero he descubierto que hace que sea más fácil de extender y razonar, especialmente si necesitas hacer algo como pasar los datos a componentes anidados.