我有反应模态弹出功能,
getModal: function() {
return (
<Modal>
<ModalBody>
<p>One fine body…</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();
});
}
}
答案 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();