Хм, это странно. Обычно трюк с присваиванием массива работает.
Альтернатива, которую я нашел, — сделать объекты в массиве экземплярами класса с собственными отслеживаемыми свойствами. Например:
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'),
...
];
// остальной код
}
Это может быть более многословно, чем создание множества простых объектов, но, как я заметил, так проще расширять функционал и понимать логику, особенно если нужно передавать данные во вложенные компоненты.