Проверьте, смонтированы ли все дочерние компоненты

есть ли способ определить, установлены ли дети? Когда я инициализирую изотоп, все дочерние компоненты должны быть смонтированы для инициализации. С таймаутом 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 на родителя. Если вы нашли случай повторения, где это не так, пожалуйста, напишите ошибку.