По какой-то причине наш проект устанавливает реквизиты компонента внутри функции 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
являются пустыми массивами.
Любое предложение будет высоко ценится! Спасибо!