如何在google地图标记onClick事件上调用reactjs函数

时间:2016-01-14 13:10:59

标签: google-maps reactjs

  

我有反应模态弹出功能,

getModal: function() {
return (
  <Modal>
    <ModalBody>
      <p>One fine body&hellip;</p>
    </ModalBody>
  </Modal>
);

},

  

那么如何在google地图标记onClick事件上调用getModal函数,这是一个代码。 this.getModal() - 不起作用......所以如何获得这个功能。

 componentDidMount: function() {  
   function placeMarker(location) {
    var addMarker = new google.maps.Marker({
      position: location,
      map: map,
      draggable: true,
      icon: "/imgs/marker.png"
    });

    google.maps.event.addListener(addMarker, 'click', function(){
       this.getModal();
    });
  }
 }
  

list-style-type

2 个答案:

答案 0 :(得分:0)

您的事件处理程序在执行时具有不同的上下文(this)。您可以将其绑定到正确的上下文,如:

google.maps.event.addListener(addMarker, 'click', (function(){
    this.getModal();
}).bind(this));

或:

google.maps.event.addListener(addMarker, 'click', this.getModal.bind(this));

答案 1 :(得分:0)

在编写javascript时,请注意您的上下文,即“this”的含义。当使用API​​和框架(如GMaps和jQuery)时,它会一直在变化。

在您的情况下,您需要在其上下文中引用具有getModal()的对象,因此:something.getModal();