在呈现

时间:2016-08-04 17:23:06

标签: javascript reactjs

我目前正在处理两个React课程。一个包含地图,另一个包含打开和关闭图层的按钮。我正在整合propTypes,其中一个是地图,以便孩子可以在其上放置标记。

componentDidMount() {
    this.map = this.refs['map'].getMap()
    // and other things
}

并在render()中传递引用:

<LayerButtons map={this.map}></LayerButtons>

以下是ref的地图(如果重要的话,请LayerButtons下方):

<Map height="480px" ref="map" zoom="13"/>

LayerButtons中的this.props.map是undefined。我使用地图向类中添加了日志语句。在render() this.map中的return语句之前,undefined正如预期的那样,并且在componentDidMount()中分配后,它也会按预期进行定义。所以我尝试将作业移到this.map render()函数中,但在渲染之前,this.refs [&#39; map&#39;]未定义。

如何初始化Map,以便在给予LayerButtons时定义?

1 个答案:

答案 0 :(得分:1)

this.forceUpdate()函数中分配地图后,您应该使用componentDidMount强制重新渲染组件:

componentDidMount() {
    this.map = this.refs['map'].getMap();
    this.forceUpdate();
    // and other things
}