ReactJS - ComponentDidMount在渲染之前执行

时间:2016-02-03 11:45:21

标签: reactjs synchronization

我有一些反应问题。我在渲染时使用map函数,并在完成之前调用函数componentDidMount。

我的代码片段

componentDidMount: function() {
   console.info("didMount");
},
render: function() {
   return React.createElement("div", null, 
             this.state.fields.map(function(field) {
                console.info("field" + field);
                return React.createElement("span", null, field);
             }.bind(this)));
}

在“field ......”之前打印“didMount”。我怎么解决这个问题?看来地图是异步的。

Thank's

1 个答案:

答案 0 :(得分:0)

您是如何初始化<div class="row"> <div class="parent"> <img src="http://via.placeholder.com/100x100" alt=""> <div class="child"> <div class="position">Developer</div> <div class="name">Name Nmae</div> </div> </div> <div class="parent"> <img src="http://via.placeholder.com/100x100" alt=""> <div class="child"> <div class="position">Developer</div> <div class="name">Name Nmae</div> </div> </div> <div class="parent"> <img src="http://via.placeholder.com/100x100" alt=""> <div class="child"> <div class="position">Developer</div> <div class="name">Name Nmae</div> </div> </div> </div> <div class="row"> <div class="parent"> <img src="http://via.placeholder.com/100x100" alt=""> <div class="child"> <div class="position">Developer</div> <div class="name">Name Nmae</div> </div> </div> <div class="parent"> <img src="http://via.placeholder.com/100x100" alt=""> <div class="child"> <div class="position">Developer</div> <div class="name">Name Nmae</div> </div> </div> </div>的?如果在this.state.fields函数中执行此操作,则componentDidMount永远不会执行,因为字段/数组为空。

在状态初始化/更新后,使用setState callback参数运行代码。