有没有办法检测孩子是否已经安装?初始化同位素时,必须安装所有子组件以进行初始化.超时为5ms,它的工作方式与预期相符,但我确信有更好的方法.
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); }
UPDATE
我现在试过这个:
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); },
那么在5ms后它计算出了高度?这就是同位素不起作用的原因.这是一个Bug还是正常的?谢谢!