【发布时间】:2015-12-25 05:19:15
【问题描述】:
我的父级渲染中有以下代码
<div>
{
this.state.OSMData.map(function(item, index) {
return <Chart key={index} feature={item} ref="charts" />
})
}
</div>
下面的代码在我的孩子图表中
<div className="all-charts">
<ChartistGraph data={chartData} type="Line" options={options} />
</div>
我认为只有在加载所有孩子之后才会调用 parent 的 componentDidMount。但是这里 parent 的 componentDidMount 是在 child 的 componentDidMount 之前调用的。
事情是这样运作的吗?还是我做错了什么。
如果事情是这样工作的,我将如何检测所有子组件何时从父组件加载?
【问题讨论】:
-
子组件的
componentDidMount()方法先于父组件调用:Link. -
但是当我控制台登录父子组件DidMount()时。文本表单父母 console.log 首先打印
-
它在小提琴中给出了正确的结果。可能是因为我在 parent 的 componentDidMount 中异步获取数据,并使用从调用返回的数组循环遍历子 OSMData 由 ajax 调用返回。
-
是的,所以基本上你使用父级的
componentDidMount()进行一些操作(AJAX 或其他)在加载子组件之前。如果您的子组件已经在父组件中布局且不依赖外部数据,则子组件的componentDidMount()将在父组件之前调用。 -
我也面临同样的问题。异步数据加载中断了我的 componentDidMount() 循环,因为首先显示了占位符。我想没有办法解决。也许重组我的组件...
标签: javascript reactjs