首页 > react组件怎么在所有的子组件mount后执行某个回调?

react组件怎么在所有的子组件mount后执行某个回调?

假如现在有<Parent />组件,其中包含一个或多个<Child />组件,那么怎么在所有组件mount后执行某个回调函数?
如果在<Parent />中的componentDidMount中调用的话,那么<Child />组件可能还没有mount
如果在<Child />中的componentDidMount中调用的话,那么如果有多个<Child />的话,岂不是会执行多次?而且在某个<Child />中执行的时候,是不是可能别的<Child />还没有mount


componentDidMount()方法是从底到顶(子组件到父组件)执行的,所以父组件执行此函数时,子组件应该是已经mount了的。
可以参考这里,React-indepth这个书里详细了说了各生命周期函数如何执行,可以参考看看。


使用 promise 来搞。你的需求是: 在多个耗时的操作全部完成后,执行某个函数。

给子组件传promise对象。
原生的Promise,可以用: Promise.all([...promise]).then

jquery的, $.when(...,promise)
对于不确定个数的,jquery的: $.when.apply($,[,,,promise]).done

楼主可以查一下使用方法。

【热门文章】
【热门文章】