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…</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();
});
}
}