有没有办法检测孩子是否已经安装?当我初始化同位素时,必须安装所有子组件以进行初始化.超时为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);
}
Run Code Online (Sandbox Code Playgroud)
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);
},
Run Code Online (Sandbox Code Playgroud)
那么在5ms后它计算出了高度?这就是同位素不起作用的原因.这是一个Bug还是正常的?谢谢!
Sop*_*ert 32
在调用componentDidMount父级之前,React等待挂载所有子组件.如果你发现一个不存在的责任案例,请提交一个错误.
| 归档时间: |
|
| 查看次数: |
10170 次 |
| 最近记录: |