Как Эмбер решает, когда переставить компонент под капотом? - PullRequest
0 голосов
/ 23 января 2019

По какой-то причине наш проект устанавливает реквизиты компонента внутри функции didRender, которая запускает другое повторное рендеринг в зависимости от жизненного цикла компонента Ember. Но это не закончилось бесконечным циклом, за исключением случаев, когда предыдущий и новый реквизиты являются пустыми массивами. Могу ли я знать, почему это? Как Эмбер решает, когда переставить компонент под капот?

someComponent.hbs

{{someComponent
    someProps=DS.attr() // THIS IS AN ARRAY
 }}

someComponent.js

didRender() {
    const newProps = ['newValue'];
    this.set('someProps', newProps)
}

Таким образом, приведенный выше пример работает как исключение (render -> didRender -> updateProps -> rerender -> didRender -> stop), когда оба или одно из предыдущих или текущих значений someProps НЕ пустые. Но бесконечный цикл происходит, когда ОБА предыдущих и текущих значений someProps являются пустыми массивами.

Любое предложение будет высоко ценится! Спасибо!

...