Мне нужно выполнить вычисления по размеру, когда компонент полностью отображается. Метод componentDidMount
, однако, срабатывает, как только компонент отображается, но это не дети. Этот код, например:Реагировать на жизненный цикл, когда компонент полностью визуализирован
componentDidMount(){
console.log(findDOMNode(this).childNodes.length);
}
выходы 0
Что такое правильный способ вызвать некоторый код, как только компонент был полностью вынесенным вместе с любыми компонентами потомков.
Редактировать: Я не хочу использовать componentDidUpdate
, так как этот метод запускается при любом обновлении. Мне просто нужно, чтобы это запускалось один раз.
Edit2: Как @NaisheelVerdhan указывает, документы говорят, что componentDidMount
модули вызываются на детей первого, но в данном случае я запутался, почему мой выше пример возвращает 0
[Из документов] (https://facebook.github.io/react/docs/component-specs.html#mounting-componentdidmount): перед дочерними компонентами вызывается метод дочерних компонентов componentDidMount(). –
Ручка, но, может быть, setTimeout? –
Попробуйте использовать this.getDOMNode(). ChildNodes.length, но помните, что этот метод устарел и findDOMNode был перемещен в ReactDOM. И, как сказано выше, компонент componentDidUpdate будет вызываться первым в компонентах chlild. –