Google maps 如何在google maps marker onClick事件上调用reactjs函数

Google maps 如何在google maps marker onClick事件上调用reactjs函数,google-maps,reactjs,Google Maps,Reactjs,我有一个弹出功能 事件处理程序在执行时具有不同的上下文(此)。您可以将其绑定到正确的上下文,如: google.maps.event.addListener(addMarker,'click',(function()){ 这个.getModal(); }).约束(这个); 或: google.maps.event.addListener(addMarker,'click',this.getModal.bind(this)); 在编写javascript时,请注意您的上下文,即“this”的含

我有一个弹出功能


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

google.maps.event.addListener(addMarker,'click',(function()){
这个.getModal();
}).约束(这个);
或:

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

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


在本例中,您需要引用上下文中包含getModal()的对象,因此:
something.getModal()

正如我所见,您可以从
getModal
函数返回react元素,但这不是react的工作方式。您应该在事件处理程序中设置状态,并在
render
方法中有条件地呈现模态。在这里了解更多
getModal: function() {
return (
  <Modal>
    <ModalBody>
      <p>One fine body&hellip;</p>
    </ModalBody>
  </Modal>
);
 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();
    });
  }
 }