Вы делаете что-то, что вызывает повторную визуализацию компонента.
Возможно, вы переключаете логическое свойство дважды.
Возможно, вы изменяете или заменяете массив.
Когда массив обновляется, Ember не знает, какой из уже отрисованных элементов соответствует какому элементу нового массива, поэтому он должен перерисовать все, что приведет к повторной оценке компонентов.
Вы можно использовать параметр key
, чтобы позволить Ember распознавать элементы даже при изменении массива.
Для этого каждый элемент в массиве должен быть объектом, например:
propertyA: true,
propertyB: [
{
id: 'foo',
collection: [], // whatever you used to have there
},
{
id: 'bar',
collection: [], // whatever you used to have there
},
],
Теперь вы можете использовать свойство id
как ключ:
{{#if propertyA}}
{{#each propertyB key="id" as |collection]}}
{{ComponentTwo data=collection}}
{{/each}}
{{/if}}