我目前正在处理两个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时定义?
答案 0 :(得分:1)
在this.forceUpdate()
函数中分配地图后,您应该使用componentDidMount
强制重新渲染组件:
componentDidMount() {
this.map = this.refs['map'].getMap();
this.forceUpdate();
// and other things
}