假如现在有<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
楼主可以查一下使用方法。