【发布时间】:2021-12-29 16:02:33
【问题描述】:
- 我正在使用 MapBox 来渲染地图。我做了一个
onClick函数,当点击地图时,它通过api显示下面屏幕截图中显示的地理编码信息。
- 现在我想要的是在表格下方有一个按钮,当点击它时我希望它执行特定的功能,我已经定义了它但是当点击它时显示
Function is not defined - 代码
map.current.on('click', function(e) {
var coordinates = e.lngLat;
var lng = coordinates.lng;
var lat = coordinates.lat;
console.log(lat);
console.log(lng);
var d = fetch("https://api.mapbox.com/geocoding/v5/mapbox.places/" + lng + "," + lat + ".json?access_token={token_value}").then(response => response.json()).then(function(data) {
console.log(data)
var str = "<table border='1'><tr><td><center>Title</center></td><td><center>Content</center></td></tr>"
for (let i in data["features"]) {
str = str + "<tr><td style='padding:5px'>" + data["features"][i]["place_type"][0] + "</td><td style='padding:5px'>" + data["features"][i]["place_name"] + "</td></tr>"
}
str = str + "</table>"
// button
str = str + "<button onClick={myFunction}>Save</button>"
function myFunction() {
console.log('Saved pressed');
}
new mapboxgl.Popup()
.setLngLat(coordinates)
.setHTML(str)
.addTo(map.current)
});
console.log(d);
});
【问题讨论】:
-
该字符串可能不会被解释为反应,我猜它只是普通的 HTML。试试
-
@IrkenInvader 我试过
myFunction()它不起作用 -
您是否也按照建议尝试将您的功能上移到范围内?
-
@akds 是的,我做到了
标签: javascript reactjs mapbox