Básicamente, inicializo un objeto dentro de onMount de esta manera:
onMount(() => { const mapy = new mapboxgl.Map({ container: "map", style: "mapbox://styles/mapbox/satellite-v9", center: testCoords[0], zoom: 19, }); console.log(mapy); });Entonces afuera tengo-
function AddPoint(){ Center=mapy.getCenter; }AddPoint se llama desde un botón HTML. Recibo este error en la consola: Error de referencia no detectado: mapy no está definido
Solo presiono el botón después de que se haya inicializado, y sé que se ha inicializado debido a mi console.log() dentro de onMount
Este es un error de alcance directo. Cuando declara mapy dentro onMount ( const mapy = ... ), hace que mapy sea local para onMount en el alcance, lo que significa que no está definido fuera de onMount .
Lo que quiere hacer aquí es declarar mapy en el nivel superior de su secuencia de comandos, luego asignarlo dentro de onMount :
let mapy; onMount(() => { mapy = new mapboxgl.Map({ container: "map", style: "mapbox://styles/mapbox/satellite-v9", center: testCoords[0], zoom: 19, }); console.log(mapy); }); function AddPoint() { Center = mapy ? mapy.getCenter : undefined; }