Ember Каждый цикл перерисовывает весь массив объектов при обновлении массива - PullRequest
0 голосов
/ 13 февраля 2019

Я использую Ember 1.13.15.

У меня есть массив объектов (содержит вложенные объекты), который повторяется с использованием каждого цикла и передается дочернему компоненту.

//parent.hbs

{{#each configData as |item index|}}

    {{ my-child
        childId=(concat item.name index)
        childName= item.name
        childColor=item.color
        childEnabled=item.enabled
        actionUpdateParent='action1'
    }}

И следующий наблюдатель внутри компонента

//parent.js

configDataObserver: function(){

    var configData = this.get('configDataFromSource');

    this.set( 'configData' , configData );

}.observes('configDataFromSource'),

Теперь, когда обновляется любой объект в массиве configData, цикл each проходит через весь массив, и все дочерние компоненты перерисовываются, вызывая серьезные проблемы с производительностью.

Я обнаружил похожие вопросы, но ни один из них не дает четкого решения.Пожалуйста, помогите.

1 Ответ

0 голосов
/ 13 февраля 2019

Я думаю, вам нужно установить ключ в каждом.

Примерно так:

https://www.emberjs.com/api/ember/release/classes/Ember.Templates.helpers/methods/if?anchor=each

{{#each configData key="name" as |item index|}}
...