onClick en la que, cuando se hace clic en el mapa, muestra la información de geocodificación que se muestra en la captura de pantalla a continuación a través de 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); });Corrija el código como se muestra a continuación
// button str += `<button onclick="myFunction()"}>Save</button>`;Supongo que el botón (y el nombre de función definido para él) se crean con un alcance diferente al que ha definido su función. Uno de estos podría funcionar:
const myFunction = () => console.log("saved pressed") .this.myFunction