Проверьте, смонтированы ли все дочерние компоненты
есть ли способ определить, установлены ли дети? Когда я инициализирую изотоп, все дочерние компоненты должны быть смонтированы для инициализации. С таймаутом 5 мс он работает так, как ожидалось, но я уверен, что есть лучший способ.
componentDidMount: function() {
var container = this.refs.vinesOverview.getDOMNode();
setTimeout(function() {
var isotope = new Isotope(container, {
itemSelector: ".vine_item",
layoutMode: "masonry",
resizable: true,
gutter: 0,
isFitWidth: true
});
this.setState({ isotope: isotope });
}.bind(this), 5);
}
обновление
я попробовал теперь это:
componentDidMount: function() {
var container = this.refs.vinesOverview.getDOMNode();
console.log(container.offsetHeight); // console output 0
setTimeout(function() {
console.log(container.offsetHeight); // console output 3150
}, 5);
},
Итак, после 5 мс он рассчитал высоту? Вот почему изотоп не работает. Это ошибка или это нормально? Спасибо!
1 ответов
React ожидает монтирования всех дочерних компонентов перед вызовом componentDidMount
на родителя. Если вы нашли случай повторения, где это не так, пожалуйста, напишите ошибку.